首页 > 解决方案 > 正则表达式替换但排除里面的所有内容

问题描述

我想使用正则表达式查找 HTML 代码中的所有单词匹配,然后用链接替换它们,但我需要排除标题标签内的所有内容。

HTML:

<p> 
    This is Apple text.
</p>

<title>
    Apple is good for your health.
</title>



我想更换:

Apple

至:

<a href="/search/apple">Apple</a>


现在我正在做替换:

/>([^<]*)?(Apple)([^>]*)?</

用。。。来代替:

>$1<a href="/search/apple">$2</a>$3<

但结果是

<p> 
    This is <a href="/search/apple">Apple</a> text.
</p>

<title>
    <a href="/search/apple">Apple</a> is good for your health.
</title>

我需要排除标题标签内的 Apple 一词被替换。
像这样:

<p> 
    This is <a href="/search/apple">Apple</a> text.
</p>

<title>
    Apple is good for your health.
</title>

请帮忙。

对不起我的英语不好。谢谢你的帮助。
我真的很感激。

标签: regex

解决方案


如果您向正则表达式添加负前瞻,则可以排除标题标签:

>([^<]*)?(Apple)([^>]*)?<(?!\/title)

参见示例:https ://regex101.com/r/svErYD/1/


推荐阅读