0

我想删除所有 html 标签但留下
EG <a href="http://www.domain.com/">Link Title</a>

到目前为止,这对我有用,只是它删除了该</a>部分。

sed -e 's/<[^">]*>//g'

我想知道是否有更好的方法来做到这一点。

4

1 回答 1

4

基本上,您所写的内容会删除<Stuff>其中Stuff没有任何双引号的任何块。例如,如果有一个完全有效的 html 位,例如:

<a href='http://www.domain.com/'>Link Title</a>

甚至是一些奇怪的 html,例如:

<a href=http://www.domain.com/>Link Title</a>

它对你不起作用。

正则表达式被认为是处理 HTML 的一种非常糟糕的方式,除非您确切知道可以处理的所有变体范围。

所以先读读这个观点

我可以提出类似的建议:

sed -e 's/<[^a>/!][^ >][^>]*>//g;s/<\/[^a>][^>]*>//g'
于 2013-01-17T07:05:21.517 回答