この記事は、H5EDU 組織の公式 HTML5 トレーニング チュートリアルです: JavaScript 集中チュートリアル - 正規表現のバックトラッキング
次の例は、正規表現の処理プロセスを示しています:
/h(ello|appy) hippo/。 ("hello there, happy hippo"); この正規表現は "hello hippo" または "happy hippo" です。マッチング プロセスが開始されると、最初に h が検索されます。 , ということで、すぐにターンアップです。次に、部分式 (ello|appy) は 2 つの処理オプションを提供し、正規表現は左端のオプションを選択し (選択は常に左から右に行われます)、ello が文字列内の次の文字と一致するかどうかを確認します。成功し、正規表現は後続のスペースと一致します。hippo の h は次の文字列の t と一致しないため、一致は続行できません。この時点で、正規表現はすべてのオプションを使い尽くしていないため諦めることはできません。その後、最も近い決定点 (最初の文字 h の後の位置と一致する) まで戻り、2 番目の分岐と一致しようとします。一致は成功せず、これ以上のオプションはないため、正規表現は文字列の最初の文字からの一致は成功しないと判断し、2 番目の文字から再試行します。 h が見つからなかったので、「happy」の h が文字列 14 番目の位置で一致するまで検索を続け、今度は ello と一致しませんでしたが、引き返して 2 番目の分岐プロセスを試みました。最後に、文字列「happy hippo」全体が一致しました。
マッチングが成功しました。