正则表达式删除一些链接

时间:2016-01-29 11:52:58

标签: html regex

我需要一个正则表达式去除某些链接的html标签

例如

<a href="falanfilan.com" target="_blank"> link </a>

<a href="sample.com" target="_blank"> fasafiso </a>

应转换为

<a href="falanfilan.com" target="_blank"> link </a>

fasafiso 

2 个答案:

答案 0 :(得分:1)

根据您的编程语言,您可以提出某事。像:

~<a href="sample\.com" [^>]*>(.*?)</a>~
# delimiter ~
# look for <a, everything that is not > and >
# capture everything lazily in a group
# look for a closing tag
# delimiter ~

在您的示例中,第1组将保留fasafiso,可以通过组$1替换/插入。 请参阅此approach on regex101.com的演示。

提示:

这只是一个快速而肮脏的解决方案(例如文本编辑器)。如果这变得更复杂,请考虑使用解析器。

答案 1 :(得分:0)

我假设您要将其目标为sample.com的所有链接替换为其内容:

匹配<a[^>]*href="sample.com"[^>]*>([^<]*)</a>
替换为\1

例如sed:

sed 's/<a[^>]*href="sample.com"[^>]*>([^<]*)</a>/\1/'

另请注意,如果您的要求足够复杂,则应使用HTML解析器。