-1

重複の可能性:
正規表現は、XHTML の自己完結型タグを除く開始タグに一致します

区切り記号の間にある文字列を取得しようとしています...

ここにサンプル:

<TAG> x1 x2 y1 y2 </TAG>

正規表現を返したいTAG

また、適切な正規表現ドキュメントへのリンクを提供していただけますか?

4

1 に答える 1

1

タグが再帰的でない限り、あなたがしていることはおそらく問題ありません。(面白い読み物)。

これらのタグの間に何かを取得するために正規表現を作成しようとしていて、それが唯一の正確なケースである場合は、次のように処理します。

  1. タグ 1 で名前をキャプチャする必要があります。これを参照してください。これは、括弧で囲むことによって行われます。

regex = "<(.*?)>".

疑問符は、最短の文字列 (貪欲でない) が一致することを確認することです。これは、あなたの場合は TAG です。<.*> だけを指定すると、正規表現はデフォルトで最も長い文字列に一致する傾向があるため、式全体に一致します。かっこには、手順 2 で使用できるようにタグ名が格納されます。

  1. 次に、終了タグに同じものがあることを確認する必要があります。これには、キャプチャされたグループへの後方参照が必要です (これを参照してください)。したがって、ここに次のように記述する必要があります。

regex = "<(.*?)>.*</\1>"

\1 は、括弧の最初のセットでキャプチャされた式への後方参照です。

私自身はテストしませんでしたが、このような式を記述するために必要な概念については理解できるはずです。

于 2012-09-28T21:40:03.227 に答える