RegEx,用于排除带有前缀

问题描述

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

基本上,我得到的文本中带有HTML标签,并且我想匹配第一段的标签而不包含以下标签。 例如:

<p>erkfoijwdocndoufhwroguh</p><p>pijgoijkuohuhogIoUgwtg</p><p>pijgoijkuohuhogIoUgwtg</p><p>pijgoijkuohuhogIoUgwtg</p>

我要匹配第一个<p></p> 没什么 因此,我想我可以使用负前瞻排除那些旁边有标签标签。如:

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

但是由于某种原因,它仍然匹配每个<p></p>标记,而不是忽略前面带有另一个标记标记。有什么建议吗?

编辑以添加:我只需要匹配标签,而不是标签内的文本。而且lookbehind不适用于我使用的工具。看来here所有有效的工具在我的工具中也都有效。

第二次编辑:我解决了我的问题,但是由于解决方案不是答案,所以我将问题悬而未决,这似乎是一个有趣的问题,将来我可能会遇到类似的问题。基本上,如果有人想出我该如何引用前面没有<p>的{​​{1}}却还包括一个>的信息,我想听听。

解决方法

我不确定我是否理解您要达到的目标,这会

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

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