Ich mag würde analysieren, eine Liste von regulären Ausdrücken analysieren mit der Wahrscheinlichkeit eines jeden zu berechnen ein Spiel, um es in einem bestimmten Text/string zu finden ...pyparsing eine Liste von regulären Ausdrücken (buchstäblich)
Z.B. Das Finden von '[AB]
' in einer Zeichenkette der Länge 1 sollte etwas um 1/13 sein (nur Großbuchstaben beachten).
Gibt es einen generischen Regex-Parser, der die einzelnen Positionen/Alternativen zurückgibt? Ich denke an eine Liste von Positionen als Rückkehr bekommen (‚[AB].A{2}
‚ergäbe‘[['A','B'],'.',['AA']
‘)
Das Problem ist, das Parsen von regulären Ausdrücken mit pyparsing. Einfache Regexes sind kein Problem, aber wenn es um "Alternativen" und Wiederholungen geht, bin ich verloren: Ich finde es schwierig, geschachtelte Ausdrücke wie '((A[AB])|(AB))
' zu analysieren.
Irgendwelche Gedanken?
Ich schrieb vor einiger Zeit einen Code Golf (http://stackoverflow.com/questions/3523323/code-golf-regex-parser). Als Code Golf werden die meisten Antworten ein wenig schwer zu entziffern sein. Aber das gleiche Problem kam auf, und die Menschen, die viel intelligenter sind als ich, werden jemals einen Weg finden. :-) –
Ich habe eine Antwort auf Ihre Wahrscheinlichkeitsfrage angeboten, und jetzt sehe ich, dass Sie eine zweite Frage über die Existenz eines Regex-Parsers haben. Es muss mindestens einen solchen Parser geben, den Python verwendet. Sie werden Ihre Antwort wahrscheinlich von einem Python-Experten erhalten, wenn Sie Ihre Frage eindeutig als Python-Interna bezeichnen. – Narveson
Hast du dir dieses Beispiel im pyparsing Wiki angeschaut? http://pyparsing.wikispaces.com/file/view/invRegex.py – PaulMcG