【发布时间】:2010-02-10 00:54:18
【问题描述】:
我想在 javascript 中编写一个正则表达式来匹配特定文本,只有当它不是 html 链接的一部分时,即
match <a href="/link/page1">match text</a>
不会匹配,但是
match text
或
<p>match text</p>
会匹配。
(每次运行搜索时,“匹配文本”都会改变 - 我将使用类似的东西
var tmpStr = new RegExp("\bmatch text\b","g");
“匹配文本”的值是从数据库中读取的。)
到目前为止,我在正则表达式方面的最大努力是
\bmatch text\b(?!</a>)
这涉及关闭,但不是初始。这对于我的目的可能会很好,但它似乎并不理想。对于改进正则表达式的任何帮助,我将不胜感激。
【问题讨论】:
-
看到这个previous SO question。
-
对不起,威尔,比你快 11 秒。 :)
-
感谢您的快速回复。我不认为它是一回事 - 我只想匹配标签内的文本 - 但如果标签存在(即匹配文本,但不匹配 text) - 但我猜你的信息是不是要用正则表达式来解析html?
-
基本上,这取决于您的情况有多具体。例如,您是否也想避免匹配
<a href="...">test match text foo</a>?如果是这样,那么使用正则表达式解决问题会比您始终知道您不想匹配的内容永远不会与链接中的其他文本一起出现要困难得多。
标签: javascript html regex