我正在尝试构建一个与<p>
和<div>
标记内的单词匹配的正则表达式,并将该单词替换为其他文本。这个单词可以在标签的开头或其他单词之间或句子的末尾(由一个句号或逗号或分号尾随)。我的正则表达式有效,但不完全。标签也可以将css类作为属性。
我的正则表达式:[^<>\n]*\b(Cat|Dog|Fish)\b[^<>\n]*
所以,如果文本是这样的:
(1) <p> Cat test dfdsf</p>
(2) <p> Cat.</p>
(3) <p>Cat.</p>
(4) <p class="test">Cat</p>
(5) <div>Cat</div>
(6) <p>Catfgdggh</p>
(7) <li>Cat</li>
它应符合上述所有条件,但(6)和(7)。也只是&#34; Cat&#34;应该匹配而不是标签中的其他单词。
非常感谢任何帮助。还有,请你解释一下。谢谢:))
答案 0 :(得分:3)
\b(Cat|Dog|Fish)\b
使用\b
或word boundary
。
\b assert position at a word boundary (^\w|\w$|\W\w|\w\W)