用于排除带前缀的匹配项的正则表达式

RegEx for excluding a match with prefix

我起初只想匹配第一个实例,但很快意识到这是不可能的。我使用的工具只使用 RegEx,所以我也没有选择。

基本上我得到了一个带有 HTML 标签的文本,我想匹配没有以下标签的第一段标签。 例如:

<p>erkfoijwdocndoufhwroguh</p><p>pijgoijkuohuhogiougwtg</p><p>pijgoijkuohuhogiougwtg</p><p>pijgoijkuohuhogiougwtg</p>

我要匹配第一个<p></p> 没有别的。 所以我想我可以使用负前瞻排除旁边有标签的标签。如:

(?!>)(<|<\/)p>

但出于某种原因,这仍然匹配每个 <p></p> 标签,而不是遗漏那些前面有另一个标签的标签。有什么建议吗?

编辑补充:我只需要匹配标签,而不是标签内的文字。后视不适用于我正在使用的工具。似乎一切有效 here,也适用于我的工具。

第二次编辑:我解决了我的问题,但我将问题悬而未决,因为解决方案不是答案,这似乎是一个有趣的问题,我将来可能会遇到类似的问题。基本上,如果有人知道我如何引用前面没有 > 但还包括第一个 </p><p>,我想听听。

我不确定我是否理解您要实现的目标,这会是:

^<p>.*?<\/p>

此处演示:https://regex101.com/r/ZXgMPV/1