【发布时间】:2015-07-27 11:19:31
【问题描述】:
我正在尝试构建一个匹配 <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) 之外的所有内容。同样只有“Cat”应该匹配,而不是标签中的其他单词。
任何帮助将不胜感激。另外,能否请您解释一下。谢谢:)
【问题讨论】:
-
Cat-astrophe这样的案例呢?是否允许关键字作为复合词的一部分? -
不,不应该匹配。想法是完全匹配一个词。现在,一个词可能在句末,所以后面跟着一个 .或 , 或 ;它应该仍然匹配
标签: javascript regex