我有一個樣品多行字符串凡在我得讓他們之間的所有div標籤和內容,其中在p標籤不等於一個特定ID的Javascript [ S S *是太貪婪
var str="<div>
<p id=\"a\">Sample sentence</p>
</div>
<div>
<p id=\"b\">Sample sentence 2</p>
</div>"
我使用的正則表達式太貪婪,我只需要匹配第二個div標籤及其內容,但它也從上面捕獲div標籤。這裏是我的正則表達式:
<div>[\s\S]*<p id="b">[\s\S]*<\/div>
,因爲我用它捕獲整個字符串,但我只是想捕捉的正則表達式:
<div>
<p id="b">Sample sentence 2</p>
</div>
任何正則表達式大師在那裏,可以幫助我嗎?
使用DOM解析器,如果你是內瀏覽器/ node.js的,例如這是微不足道的http://stackoverflow.com/questions/10585029/parse-a-html-string-with-js&在這裏很多其他的例子。 –
正則表達式大師會建議您不要嘗試使用正則表達式解析/分析/操作DOM。例如,理論上不可能編寫一個在存在嵌套div的情況下表現正確的正則表達式。 – 2017-05-08 18:04:31
標籤可以用正則表達式解析。然而,標籤之間的開放/關閉或缺乏以及結構關係並不是正則表達式的優點。 – sln