ホームページ >ウェブフロントエンド >jsチュートリアル >正規表現の後方参照の詳しい説明_正規表現

正規表現の後方参照の詳しい説明_正規表現

微波
微波オリジナル
2017-06-28 13:49:301658ブラウズ

この記事では主に、正規表現学習チュートリアルのバックトラッキング参考文献backreferenceを紹介しており、必要な友人はそれを参考にしてください

。この記事では、正規表現の後方参照について説明しています。参考のために皆さんと共有してください。詳細は次のとおりです。

すべての例で、正規表現の一致結果はソース テキストの [and] の間に含まれています。一部の例は、正規表現の場合、Java を使用して実装されます。 Java自体の式 使用方法は該当箇所で説明します。すべての Java サンプルは JDK1.6.0_13 でテストされています。

1. 問題の紹介

HTML ページ内のタイトル タグ (H1-H6) の一致の問題:

テキスト:

<body>
<h1>Welcome to my page</H1>
Content is pided into twosections:<br>
<h2>Introduction</h2>
Information about me.
<H2>Hobby</H2>
Information about my hobby.
<h2>This is invalid HTML</h3>
</body>

正規表現: b0f61db6e7831fe4ca4ade8b2867a677

結果:

6c04bd5ca3fcae76e30b72ad730ca86d
【4a249f0d628e2318394fd9b75b4636b1私のページへようこそ921186cad5e55f1481a45fdcd6c30f6e】
コンテンツは 2 つのセクションに分かれています: 0c6dc11e160d3b678d68754cc175188a
【c1a436a314ed609750bd7c7d319db4da紹介2e9b454fa8428549ca2e64dfac4625cd】
私についての情報
【1b7994ba0f794e1b49742a6367e9e0c6趣味ebe8950f0835d9653ff486769499854f】
私の趣味についての情報
【c1a436a314ed609750bd7c7d319db4daこれは無効な HTML39528cedfa926ea0c01e69ef5b2ea9b0]
36cc49f0c466276486e50c850b7e4956

分析: パターン bec64cdfd3b18ddf17d11124d921cd9d は第 1 レベルのタイトルの開始タグと一致し、大文字と小文字は区別されません。この例では、4a249f0d628e2318394fd9b75b4636b1、c1a436a314ed609750bd7c7d319db4da、c0d08c9e09935101747a568bd8607d7d、2e9b454fa8428549ca2e64dfac4625cd、39528cedfa926ea0c01e69ef5b2ea9b0 に一致します。 メタキャラクター は、タグ内のテキストと一致するためにここで使用されます。それ以外の場合は、最初の開始タグから最後の終了タグまでのコンテンツと一致します。ただし、結果から、無効なタグ、つまり c1a436a314ed609750bd7c7d319db4da39528cedfa926ea0c01e69ef5b2ea9b0 も一致しており、まったく一致できないことがわかります。この問題を解決するには、後方参照を使用する必要があります。

2. 後方参照マッチング

後方参照とは、パターンの後半が前半で定義された部分式を参照することを意味します。 部分式の使用、分割、参照については、以前に紹介しました。次に、前の例を解いてみましょう:

テキスト:

<body>
<h1>Welcome to my page</H1>
Content is pided into twosections:<br>
<h2>Introduction</h2>
Information about me.
<H2>Hobby</H2>
Information about my hobby.
<h2>This is invalid HTML</h3>
</body>

正規表現: 2b0cba08e60dd5488139acd8c53df8f7.*?ff4eb78c321859eb74ed45e91b2e966e

結果:

私。
【1b7994ba0f794e1b49742a6367e9e0c6趣味ebe8950f0835d9653ff486769499854f】
私の趣味に関する情報です。
c1a436a314ed609750bd7c7d319db4daこれは無効な HTML39528cedfa926ea0c01e69ef5b2ea9b0
分析: 最初に冒頭のタイトルのパターンと一致しますtag028eabd449c5b286083e9b4dcf3d671d では、括弧を使用して [1-6] を部分式として扱い、一致する終了タイトル タグ パターンは ff4eb78c321859eb74ed45e91b2e966e です。ここで 1 は、最初の部分式 Formula、つまり ([1-6])、([1-6]) が 1 に一致する場合、1 も 1 に一致し、2 に一致する場合、1 は 2 にも一致するため、最後の無効なタイトルのタグ一致しません。


追記: 参考までに、さらに便利な正規表現ツールを 2 つ紹介します:

JavaScript正規表現オンライン テスト ツール:

http://tools.

正規表現オンライン生成ツール:
http://tools.jb51.net/regex/create_reg

以上が正規表現の後方参照の詳しい説明_正規表現の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。