Ich möchte auf dieser Regel, wenn eine Zeichenfolge entspricht finden einen regulären Ausdruck:Python re: wenn string ein Wort UND eine Wortliste hat?
list_of_words = ['a', 'boo', 'blah']
if 'foo' in temp_string and any(word in temp_string for word in list_of_words)
Der Grund, warum ich es in einem regulären Ausdruck will, ist, dass ich Hunderte von Regeln, wie es habe und anders es so will ich um sie alle als Muster in einem Diktat zu speichern.
Das einzige, was ich denken konnte, ist dies aber es scheint nicht recht:
re.search(r'foo.*(a|boo|blah)|(a|boo|blah).*foo')
"Ich möchte sie in einem Diktat speichern" erfordert nicht unbedingt, dass Sie eine Regex erstellen. Solange Sie alle Daten haben, die Sie benötigen, um die Logik zu rekonstruieren, was ist es wichtig, wie sie gespeichert ist? '{" was auch immer ": (" foo ", (" a "," boo "," blah "))}} ist ebenso ein gültiges Diktat wie' '{" was auch immer ": r'foo. * (a | boo | blah) | (a | boo | blah). * foo '} '' – Kevin
würde nicht (mehr oder weniger) 'if re.search (' foo ') und re.search (" (a | boo | blah) "):' Mach was du willst? –
Ich habe versucht, ich habe 100 verschiedene Regeln und sie unterscheiden sich. Ich kann nicht zu sehr ins Detail gehen, aber das Speichern als Wortgruppe funktioniert nicht für mich. Es würde sehr kompliziert werden und jeder, der sich mit dem Wörterbuch nicht auskennt, was jeder Satz bedeutet (ist es ein OR oder ein UND), würde Schwierigkeiten haben. Ein regelmäßiger Ausdruck lässt keinen Raum zum Raten. Vielleicht hätte ich nicht sagen sollen "Regeln wie es" –