0

私はこれを持っているJavascriptを使用し ています:

<(div|span) class="search-result-(body-text|title)">(.*?)</(span|div)>

そして、私はこのコンテンツに使用しています:

<div class="search-result-item club">
   <span class="search-result-type">Projekt</span
   <span class="search-result-title">Titel</span>
   <div class="search-result-body-text">
     Body text
   </div>
   <div class="search-result-attributes">
     <span class="search-result-attribute">Attribute</span>
   </div>
 </div>

私の結果は次のとおりです。

<span class="search-result-title">Titel</span>,
<div class="search-result-body-text">
  Body text
</div>

それは理にかなっていますが、私の正規表現はどのように見えるので、タグが削除されるので、次のようになります: TitelBody text

4

1 に答える 1

4

誰かがこれへのリンクを投稿することが法律で義務付けられています: RegEx match open tags except XHTML self-contained tagsを読んで、本当に正規表現を使って HTML を解析したいかどうか再考する必要があります。

ただし、必要なのは、一致の 3 番目の () グループの内容です。JS 正規表現オブジェクトのexecメソッドは、インデックス 0 の一致全体と、インデックス 1、2、... のすべてのグループからの一致を含む配列です (この場合、インデックス 3 が必要です)。

[注: この回答の以前のバージョンでは、正規表現を読み違えていたため、上記の「3 番目」と「3」ではなく「1 番目」と「1」がありました。ごめん。]

于 2011-03-25T10:10:34.167 に答える