正则表达式:找到两个不包围文本中另一个元素的元素

时间:2015-06-05 08:43:05

标签: regex

我需要从某些文本中找到格式错误的HTML内容;我们允许用户添加strongem标记,但它们并不总是正确关闭它们

This is some <b>correct</b> formatting
This is some <b>incorrect<b> formatting

我想捕获格式不正确的实例,即开始标记后面没有结束标记的情况。我开始使用负向前瞻,但迄今为止没有取得多大成功

<b>(?!.*?<\/b>.*?)<b>
  • <b>获取开场标记
  • (?!否定前瞻
    • .*?任何事情,但不是贪婪
    • <\/b>结束标记
    • .*?任何事情,但不是贪婪
  • )关闭前瞻
  • <b>另一个开场标记

知道我该怎么做吗?

附录:我知道托尼的小马,但我觉得它现在不会出现。这个问题可以被替换为“我想找到一个单词”zoinx“的两个出现,其中”palantir“一词之间没有出现”这与HTML无关“

1 个答案:

答案 0 :(得分:3)

$

试试这个。看看演示。

https://regex101.com/r/nS2lT4/19

对于通用版本,请使用

<b>(?:(?!<\/b>).)*<b>

参见演示。

https://regex101.com/r/nS2lT4/24