正規表現からNFAビジュアライザー

Thompson構成法を使用して正規表現をNFA状態図に変換します。

このツールについて

正規表現からNFAビジュアライザーは、Thompson構成法アルゴリズムを使用して正規表現を 非決定性有限オートマトン(NFA)の状態図に変換します。正規表現パターンを解析し、 NFAデータ構造を構築し、HTML Canvas上にインタラクティブな図を描画します —すべてブラウザ内で実行されます。

Thompson構成法はコンパイラ理論の古典的アルゴリズムで、正規表現を等価なNFAに 変換します。各正規表現演算子(連結、選択、クリーネ閉包)は特定のNFA フラグメントパターンにマッピングされます。結果のNFAは効率的なマッチングのため DFA(決定性有限オートマトン)に変換できますが、このツールはNFA構成ステップに 焦点を当てています。

選択(|)、連結、クリーネ閉包(*)、プラス(+)、オプション(?)、 文字クラス([abc])、ドット(.)、エスケープ文字、括弧によるグループ化を サポートしています。図では状態を円(受理状態は二重円)で、遷移をラベル付き 矢印で、イプシロン遷移を控えめな色で表示します。

すべての処理はブラウザ内で完全に実行されます。データがサーバーに送信されることは ありません。実践的な正規表現テストには正規表現テスターを、 クイックリファレンスには正規表現チートシートを、 他のアルゴリズム可視化にはグラフビジュアライザー二分木ビジュアライザーをご利用ください。

このツールはオートマトン理論を学ぶ情報科学の学生、教材を準備する教育者、 正規表現エンジンの内部動作を理解したい開発者に最適です。

使い方

  1. 正規表現入力フィールドに正規表現を入力します(例:(a|b)*abb)。
  2. 入力に応じてNFA図が自動的にレンダリングされます。
  3. 入力の下に表示される状態数遷移数を確認します。
  4. キャンバスをスクロールして大きな図を探索します。
  5. PNGダウンロードをクリックして図を画像ファイルとして保存します。
  6. 画像をコピーをクリックして図をクリップボードにコピーします。
  7. 下部の対応構文リファレンスで利用可能な演算子を確認します。

正規表現からNFAの人気例

すべての正規表現NFA例を見る →

よくある質問

データは安全ですか?

はい。すべての正規表現解析とNFA構成はクライアントサイドJavaScriptを使用してブラウザ内で実行されます。データがサーバーに送信されることはありません。

Thompson構成法とは何ですか?

Thompson構成法は1968年にKen Thompsonが発明したアルゴリズムで、正規表現を等価なNFAに変換します。各正規表現演算子(連結、選択、クリーネ閉包)がイプシロン遷移で接続される特定のNFAフラグメントにマッピングされます。

NFAとDFAの違いは何ですか?

NFA(非決定性有限オートマトン)は同じ入力に対して1つの状態から複数の遷移を持つことができ、イプシロン(空)遷移も持てます。DFA(決定性有限オートマトン)は各入力記号・各状態に対して正確に1つの遷移しかなく、イプシロン遷移もありません。すべてのNFAは等価なDFAに変換できます。

どの正規表現機能がサポートされていますか?

連結、選択(|)、クリーネ閉包(*)、プラス(+)、オプション(?)、括弧によるグループ化、文字クラス[abc]、ドット(.)、エスケープ文字(\d、\w、\s)をサポートしています。後方参照や先読みなどの高度な機能は正規言語を超えるためサポートされていません。

なぜイプシロン遷移が多いのですか?

イプシロン(ε)遷移はThompson構成法の自然な結果です。各演算子がNFAフラグメントを接続するためにイプシロン遷移を導入します。最小DFAよりも多くの状態を生成しますが、構成は単純で正しく、正規表現の長さに対して線形時間で実行されます。

図をエクスポートできますか?

はい。図をPNG画像としてダウンロードするか、クリップボードにコピーできます。図は表示されている実際の解像度でHTML Canvasにレンダリングされます。

関連ツール