"TEXT <p>TEST1</p><br><div> <p>TEST2</p></div>"
(字符串,不是HTML(
在这里,我试图捕获最后一个<p>
标签,直到</p></div>
。(编辑:不仅仅是我包括实际字符串标签之间的文字(
您如何从 </p><div>
到下一个包含" test2"而不是" test1"的下一个先前的 <p>
开始。我遇到了这个问题,因为第一场比赛(前进(包含我正在寻找的比赛,而不是单独的匹配。
我知道我可以抓住</p></div>
的索引,然后向后循环直到找到<p>
,但这似乎效率低下。我也知道JavaScript中的REGEX不允许您根据此答案从字符串的末端进行搜索(JavaScript Regex从字符串的末端到开始(,因此仅发布发布,因为我不知道更最佳的解决方案。
使用负面外观:
<p>(?:.(?!<p>))+</div>
类似的问题:正则上次出现?
var testStr='<p>TEST1</p><br><div> <p>TEST2</p></div>';
var matchesStr=testStr.match(/(<[p]>)(.|;)*(</p></div>){1}$/g);
// get your required result from array matchesStr
console.log(matchesStr);
$('#matchResult').text(matchesStr.join(','));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<div id="matchResult"></div>