我想用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>)
这处理结束,但不处理初始。对于我的目的来说,这可能会很好地工作,但它似乎并不理想。如果能帮助我改进正则表达式,我将不胜感激。
最佳答案
您可以使用消极的后视来获得开局 <a href=...
:
var tmpStr = new RegExp('(?<!<a.*?>)match text(?!</a>)');
希望对你有用。
关于javascript - 用于匹配未链接的特定文本的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2233684/