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 № 1Ich 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/