怎么用正则去除a标签,只留下内容 http://git.oschina.net
将a标签部分替换为空的方式,不是直接取a标签的内容,因为有很多这样的代码,而且还有其它代码要留在原地
<a href="http://git.oschina.net/" style="box-sizing: border-box; color: rgb(51, 51, 51); text-decoration: none; transition: all 0.5s cubic-bezier(0.175, 0.885, 0.32, 1); -webkit-transition: all 0.5s cubic-bezier(0.175, 0.885, 0.32, 1); max-width: 100%; transparent;"><span data-wiz-span="data-wiz-span" style="box-sizing: border-box; max-width: 100%; font-size: 14pt;">http://git.oschina.net</span></a>
经 @vimac 答案的指点,觉得现在最合适的方式:
也就是:
以下为废弃答案,就不加
del
标签了。答案是正确的,不过在上面写了更简洁的答案 :P首先,你想要的正则表达式(匹配
a
标签和span
标签,以及各自闭标签:后面再解释每一部分的含义。
先说使用上(假设题主那段代码以字符串形式保存在
str
中:匹配思路:
先说匹配
a
标签部分:<a\b
: 合法的a
标签开头必然是"<a"
;[\w="\/\.\-\(\):;,% ]*
: 标签内的各种合法字符,出现0次以上;>
: 匹配已经匹配前面的正则匹配项后第一个>
。\s*
: 用来匹配<a>
与<span>
之间的空白字符;然后匹配
span
标签部分,与匹配a
标签一样。再说匹配
a
和span
的闭标签:<\/span>\s*<\/a>
之后把这两部分用
()
包起来,中间加上|
取或
希望能够帮到你 :P