Gibt es eine Möglichkeit, einen einzelnen Regex zu erhalten, der diese Bedingung erfüllt?
Ich suche ein "Wort", das drei Buchstaben aus dem Satz MBIPI enthält, in beliebiger Reihenfolge, aber ein I enthalten MUSS.
d. h.
re.match("[MBDPI]{3}", foo) und "I" in foo
Dies ist also das korrekte Ergebnis (in Python mit dem re-Modul), aber kann ich dies von einem einzigen Regex erhalten?
>>> 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
mit regex Ich weiß, ich kann | als boolesche OR-Operator verwenden, aber gibt es eine boolesche AND-Äquivalent?
oder brauche ich vielleicht eine Vorwärts- oder Rückwärtssuche?
0 Stimmen
Sie können auch mit str.find() nach dem Zeichen 'I' suchen. Quelle: docs.python.org/library/stdtypes.html#str.find