1

私は、ユーザーがネットワーク フローを介して正規表現を照合できるようにするネットワーク検査ツールに取り組んでいます。うまく機能しているので、グラフ機能を追加したいと思います。これは、正規表現の内部状態マシンを表すドット グラフをユーザーに提供するためです。

インタラクティブな正規表現デバッガーとビジュアライザーが非常に便利であることがわかり、グラフを生成するためにほぼ同様の Python ベースの機能を使用したいと考えています。カスタム正規表現言語を受け入れ、式をそのようなグラフに変換するツールがあります。Python の re 式と互換性がないため、使用できません。

Python 正規表現を FA ステート マシンに変換する方法を教えてください。

4

1 に答える 1

3

Python 正規表現の全範囲を許可する場合、これは実行できません。その理由は、 でサポートされている一部の式reがまったく正則ではなく、有限オートマトンで表現できないためです。簡単な例の 1 つは です。これは、ある数の 、a 、および前と同じ数の にr"(a+)b\1"一致します (正規表現の実装の詳細を参照してください)。この表現を認める DFA はありません。aba

于 2013-09-23T18:48:15.090 に答える