我正在寻找一个正则表达式,用于替换html页面中给定的字符串,但仅当该字符串不是标签本身的一部分或出现在链接或标题文本中时才进行替换。
例如:
查找'replace_me'
<p>You can replace_me just fine</p> OK
<a href='replace_me'>replace_me</a> 不匹配
<h3>replace_me</h3> 不匹配
<a href='/test/'><span>replace_me</span></a> 不匹配
<p style="background:url('replace_me')">replace_me<h1>replace_me</h1></p> 第一个不匹配,第二个OK,第三个不匹配
谢谢!
更新:
我已经找到了一个可行的正则表达式。
例如:
查找'replace_me'
<p>You can replace_me just fine</p> OK
<a href='replace_me'>replace_me</a> 不匹配
<h3>replace_me</h3> 不匹配
<a href='/test/'><span>replace_me</span></a> 不匹配
<p style="background:url('replace_me')">replace_me<h1>replace_me</h1></p> 第一个不匹配,第二个OK,第三个不匹配
谢谢!
更新:
我已经找到了一个可行的正则表达式。
\b(replace_me)\b(?!(?:(?!<\/?[ha].*?>).)*<\/[ha].*?>)(?![^<>]*>)