pタグのIDが特定のIDと等しくないdivタグと内容をすべて取得する必要があるサンプルの複数行の文字列があるJavascript [ s S] *が欲張りすぎる
var str="<div>
<p id=\"a\">Sample sentence</p>
</div>
<div>
<p id=\"b\">Sample sentence 2</p>
</div>"
私が使用していた正規表現はあまりにも貪欲で、2番目のdivタグとその内容に一致する必要がありますが、上からdivタグもキャプチャしています。ここに私の正規表現は次のとおりです。
<div>[\s\S]*<p id="b">[\s\S]*<\/div>
私はそれが文字列全体をキャプチャされて使用されるが、私はちょうどキャプチャする正規表現のために:
<div>
<p id="b">Sample sentence 2</p>
</div>
これで私を助けることができるそこに任意の正規表現の第一人者を?
例えば、あなたはブラウザ/ Node.jsの範囲内であれば、これは簡単です、DOMパーサを使用しますhttp://stackoverflow.com/questions/10585029/parse-a-html-string-with-js他の多くの例がここにあります。 –
Regexp gurusはregexpでDOMを解析/解析/操作しようとしないようお勧めします。例えば、ネストされたdivの存在下で正しく動作するregexpを書くことは理論的に不可能です。 –
タグは正規表現で解析できます。しかし、タグ間のオープン/クローズや不足、構造的関係は、正規表現の特権ではありません。 – sln