REGEX-如何从字符串的末端开始查找匹配



"TEXT&nbsp;<p>TEST1</p><br><div>&nbsp;<p>TEST2</p></div>" (字符串,不是HTML(

在这里,我试图捕获最后一个<p>标签,直到</p></div>。(编辑:不仅仅是我包括实际字符串标签之间的文字(

您如何从 </p><div>到下一个包含" test2"而不是" test1"的下一个先前的 <p>开始。我遇到了这个问题,因为第一场比赛(前进(包含我正在寻找的比赛,而不是单独的匹配。

我知道我可以抓住</p></div>的索引,然后向后循环直到找到<p>,但这似乎效率低下。我也知道JavaScript中的REGEX不允许您根据此答案从字符串的末端进行搜索(JavaScript Regex从字符串的末端到开始(,因此仅发布发布,因为我不知道更最佳的解决方案。

<</p> <。

使用负面外观:

<p>(?:.(?!<p>))+</div>

类似的问题:正则上次出现?

var testStr='<p>TEST1</p><br><div>&nbsp;<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>

最新更新