3

最初のタグのテキストコンテンツを一致させようとしています<test>

例えば:

<test>SAMPLE TEXT</test><test>SAMPLE TEXT2</test><test>SAMPLE TEXT3</test>

使用する場合

("<test>(.*)</test>")`

私はこれを得た:

SAMPLE TEXT</test><test>SAMPLE TEXT2</test><test>SAMPLE TEXT3

<test>最初のタグからコンテンツだけを取得する方法: SAMPLE TEXT

4

4 に答える 4

4

(.*)貪欲(「最後 を見つけるまで一致できるすべて」を意味する</test>)であり、貪欲でないバージョン(「最初(.*?)を見つけるまで一致できる限り少ない」を意味する)を探しています。 </test>

ただし、正規表現を使用してHTMLを解析することを検討するときは、Cthuluの呼び出しを念頭に置いてください。また、.NETを使用してHTMLを解析するためのベストプラクティスについては、この質問を参照してください。または、これがXML(HTMLではない)の場合は、必ず、を使用して適切な(そして簡単な)方法で実行してXmlReaderください。

于 2012-04-18T13:14:50.813 に答える
1

.*使用する代わりに.*?

疑問符はアスタリスクを怠惰にし、一致をできるだけ少なくします。それがないと、アスタリスクは貪欲になり、可能な限り一致します。

于 2012-04-18T13:15:35.653 に答える
1

@Raduの回答は非常に良いですが、次のレビューを適用してみてください。

"<test>([^<]*)</test>"
于 2012-04-18T13:16:52.220 に答える
1

XML解析ライブラリを使用できることに同意しますが、とにかく返信します:

("<test>([^<]*)</test>")

無視したい最初の文字である'<'とは異なるすべての文字を解析します。

HTH。

于 2012-04-18T13:18:41.713 に答える