• # regex

    Posté par . En réponse au message Comment copier des chaînes de caractère différente. Évalué à 3. Dernière modification le 30 mars 2018 à 20:33.

    Sans le format de départ dans le fichier, c'est un peu compliqué d'être précis (tabulé,avec un séparateur particulier, chaine de caractères ?).
    S'il n'y a pas de délimiteur autre que l' et sachant qu'il peut faire parti du code isotope, il peut y avoir des problèmes (faux négatifs et ou faux positif)

    En considérant le code isotope est alphanumérique en majuscule et avec espace possible :

    #on cherche un motif de 6 caractères exactement pouvant être espace, des lettres en majuscules et des chiffres
    for my $str(("SN129M"," C 13 ","C12","plop coin", "ex : C 14 pour le carbone 14")){
     if($str=~ /([ A-Z0-9]{6})/){
     print "'".$str."' -> isotope : '".1ドル."'\n";
     }
     else{
     print "'".$str."' -> isotope non trouvé\n";
     }
    }

    rendra

    'SN129M' -> isotope : 'SN129M'
    ' C 13 ' -> isotope : ' C 13 '
    'C12' -> isotope non trouvé
    'plop coin' -> isotope non trouvé
    'ex : C 14 pour le carbone 14' -> isotope : ' C 14 '