/ / In Python, wie überprüft man, ob eine Zeichenkette mit einer der Regex im Array 'effizient' übereinstimmt? - Python, Regex, Python-3.x

Wie kann man in Python prüfen, ob eine Zeichenkette mit einer der Regex im Array "effizient" übereinstimmt? - Python, Regex, Python-3.x

Ich weiß, dass es bereits einige Threads über passende Regex im Array gibt: Wie verwenden Sie eine Regex in einem Listenverständnis in Python? Aber ich denke nicht, dass diese Ansätze sehr skalierbar sind.

Meine Frage ist, wie man den Regex-Abgleich so effizient wie möglich macht. Zum Beispiel habe ich unten eine Liste mit Gotteslästerungen (sie hat insgesamt 2000 Zeilen):

.*damn
bollock.*
...

(Du hast die Idee…)

Ich möchte so schnell wie möglich herausfinden, ob ein Satz irgendein Schimpfwort / Muster enthält. Verketten Sie alle diese Muster zu einem Muster mit | wird zu einem super-riesigen Muster führen. Hat jemand Ideen, wie man es in Python optimieren kann?

Antworten:

-1 für die Antwort № 1

Ich werde es für diese Bibliothek versuchen:

https://code.google.com/archive/p/esmre/

Reguläre Ausdrucksbeschleunigung in Python mit Aho-Corasick

Oder dieses:

https://github.com/WojciechMula/pyahocorasick/