-1

HTMLタグを分離するための正規表現を探しています。これには、TAG、ATTRIBUTES、および CONTNET が含まれます。

私がこれを持っているとしましょう:

<html> 
<body>
aajsdfkjaskd 
<TAGNAME name="bla" context="non">hfdfhdj </TAGNAME>
</body>
 </html>

次を返す正規表現が必要です。

<TAGNAME name="bla" context="non">hfdfhdj </TAGNAME>

ありがとう、ジョー

4

5 に答える 5

2

正規表現を使用せず、代わりに HTML パーサーを使用してください。はるかに信頼性が高く、操作が簡単です。

あなたが PHP 開発者である場合は、これ (http://simplehtmldom.sourceforge.net/) を使用することをお勧めします。

于 2012-07-11T15:15:21.803 に答える
1

HTML Agility Packを調べると、作業がはるかに簡単になります。

于 2012-07-11T15:16:32.033 に答える
0

この正規表現を使用します<TAGNAME.+?</TAGNAME>

于 2012-07-11T15:13:14.750 に答える
0

これが主な目的である場合、XLST は優れたツールです。TAGNAME だけを簡単に選択して、属性とテキストをコピーできます。イントロについては、http://www.w3schools.com/xsl/を参照してください。

于 2012-07-11T15:16:04.293 に答える
0

まず第一に:これをしないでください。正規表現を使用して HTML を解析することはメンテナンスの悪夢であり、実際の HTML の例ではおそらく失敗します。より良いオプションがあります ( HTML Agility packのような HTML パーサーを使用するなど)。

ただし、質問に答えるために、次の正規表現は HTML コードが

  • 適切に形成されている (終了タグが欠落していないなど)
  • 「TAGNAME」を含むコメントが含まれていません
  • 「TAGNAME」を含むスクリプト ブロックが含まれていない
  • おそらくもっとある

これらのケースのいくつかをカバーするために拡張できますが、実際にはしたくありません =)

    <TAGNAME(<TAGNAME (?<tagcounter>)|</TAGNAME>(?<-tagcounter>)|.)*</TAGNAME>(?(tagcounter)(?!))

も必要ですRegexOptions.SingleLineIdeone.comで実際の動作をご覧ください

于 2012-07-11T15:41:48.867 に答える