sed中的正则表达式删除超链接并保留链接文本

时间:2013-06-18 21:15:49

标签: html regex hyperlink sed

在mysql转储中,我想删除包含某个类的所有链接标记,并保留(始终只是)一个包含在标记中的单词。

标签结构:

<a ..potential-other-stuff.. class="lexicon-term" ..potential-other-stuff.. >medium</a>

据我所知,我知道这没有道理:

/<a class="lexicon-term" >[^ tab]\+<\/a>/

1 个答案:

答案 0 :(得分:1)

虽然贝特是对的,但这里有一个:

xmpl='<a ..potential-other-stuff.. class="lexicon-term" ..potential-other-stuff.. >medium</a>'
echo $s | sed 's|<a [^>]* class="lexicon-term" [^>]*>\([^<]*\)</a>|\1|'

一些评论:

  • sed允许任意分隔符。此处|优于/
  • [^>]而不只是.阻止模式跨越多个a-tags