Bonjour,
Je travail actuellement sur un programme qui utilise des regex Le code utilise re.search et cela m’ennuie car j’ai du mal à construire des regex négative (renvoi un match si on ne correspond pas au pattern)
Évidement, je ne peux pas non plus modifier le code sans induire un tas de tests que l’on a pas envie de passer (faute de budget)
Voila mes exemples:
import re
1 2 3 4 5 6 7 8 | def testPattern(pattern, value): print("match : {0}".format(re.match(pattern, value))) print("search : {0}".format(re.search(pattern, value))) notGood = "S01aa_C1_FOO BAR" p = "(?!^(S\d+_C\d+_.*))" testPattern(p, notGood) |
Résultat :
1 2 | match : None search : <_sre.SRE_Match object at 0x023181E0> |
Dans mon exemple, je voudrai avoir les expressions qui ne commence par S suivie de chiffre suivie de "_" suivie de C suivie de chiffre suivie de "_" suivie n’importe quels caractères
Je n’arrive pas à comprendre pourquoi la regex négative retourne un match lorsque mon expression correspond au pattern
+0
-0