0

特定の html タグの詳細を調べるための正規表現が必要です。

私は以下の2つの正規表現を試しました:

<\s*tag[^>]*>(.*?)<\s*/\s*tag>

<tag[^<>]*>.+?<\/tag>

以下は、 最初の正規表現の2 つのテスト ケースです。

最初の例では正しい結果が得られますが、例 2 では間違った結果が得られます。どちらの場合も入力はほぼ同じです。

1 番目のケース: すべてが個別の文字列として、2 番目のケース:単一の文字列として。

===================================
Example 1 Input
===================================
<tagX>AAA</tagX>
<tag>GGG</tag>
<tag id="tag896">HHH</tag>
<tagY>III</tagY>
<tag id="tag017">JJJ</tag>
<tag>KKK</tag>
===================================
Output 1 // Correct
===================================
<tag>GGG</tag>
GGG
<tag id="tag896">HHH</tag>
HHH
<tag id="tag017">JJJ</tag>
JJJ
<tag>KKK</tag>
KKK


===================================
Example 2 Input (as a single string)
===================================
<tagX>AAA</tagX><tag>GGG</tag><tag id="tag896">HHH</tag><tagY>III</tagY><tag id="tag017">JJJ</tag><tag>KKK</tag>
===================================
Output 2 // Wrong
===================================
<tagX>AAA</tagX><tag>GGG</tag>
AAA</tagX><tag>GGG

<tag id="tag896">HHH</tag>
HHH

<tagY>III</tagY><tag id="tag017">JJJ</tag>
III</tagY><tag id="tag017">JJJ

<tag>KKK</tag>
KKK

ここで正確に(タグ)の詳細が必要ですが、2番目のケースでは、(タグ)+(タグX)+(タグY)の詳細を取得しています。

私の入力は2番目の入力に似ています...

その少し緊急...これに対する解決策を得ることができますか。

ありがとう...

4

3 に答える 3

1

以下の正規表現を試してみましたが、うまくいきました...

<tag( [^<>]+)?>(.+?)<\/tag>
于 2013-08-07T12:38:28.370 に答える
0

.NET を使用している場合 (何らかの理由で、XML について確信があり、Html Agility Packを使用する必要がない場合)、これを試すことができます。

<tag(?:>|(?: .*?>))(.*?)</tag>
于 2013-08-07T12:21:22.483 に答える