Existe-t-il un moyen d'obtenir regex simple pour satisfaire cette condition ??Comment puis-je inclure un booléen AND dans une regex?
Je cherche un « mot » qui a trois lettres de l'ensemble MBIPI, toute commande, mais doit contenir un I.
ie.
re.match ("[MBDPI] {3}", foo) et "I" dans foo
C'est donc le résultat correct (en python utilisant le module re), mais ce que je peux obtenir cela de une seule regex?
>>> for foo in ("MBI", "MIB", "BIM", "BMI", "IBM", "IMB", "MBD"):
... print foo,
... print re.match("[MBDPI]{3}", foo) and "I" in foo
MBI True
MIB True
BIM True
BMI True
IBM True
IMB True
MBD False
avec regex Je sais que je peux utiliser | comme un opérateur OU booléen, mais y at-il un booléen ET équivalent? Ou peut-être que j'ai besoin d'une recherche en avant ou en arrière?
Vous pouvez également rechercher le caractère 'I' avec str.find(). Source: http://docs.python.org/library/stdtypes.html#str.find – Dor