通过HTML标记内的正则表达式匹配文本

时间:2014-10-10 08:58:55

标签: regex

通过正则表达式,我尝试匹配单词one,只有当它在HTML <p>标记内时才会匹配。

  1. <p>zero one two three</p>
  2. zero one two<p>three</p>
  3. <p>zero one <b>two</b></p><p>three</p>
  4. <p>two</p>three one
  5. 上面的#1和#3应该匹配。感觉我需要一个前瞻,以确保有一个结束</p>标签没有开头<p>标签(或相反的外观)。但我似乎无法想出正确的表达方式。任何想法都表示赞赏。

2 个答案:

答案 0 :(得分:1)

您可以尝试使用以下正则表达式匹配one标记内的字符串<p>

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

DEMO

答案 1 :(得分:1)

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

你可以尝试这个。只需抓住捕获。参见演示。

http://regex101.com/r/xT7yD8/12