mic*_*e93 16 html regex linux bash
我需要使用sed命令使用bash脚本从html中删除所有标记.我试过这个
sed -r 's/[\<][\/]?[a-zA-Z0-9\=\"\-\#\.\& ]+[\/]?[\>]//g' $1
Run Code Online (Sandbox Code Playgroud)
这个
sed -r 's/[\<][\/]?[.]*[\/]?[\\]?[\>]//g' $1
Run Code Online (Sandbox Code Playgroud)
但我仍然怀念一些东西,有什么建议吗?
Ola*_*che 60
您可以使用许多HTML到文本转换器之一,如果可能,使用Perl正则表达式<.+?>或必须sed使用它<[^>]*>
sed -e 's/<[^>]*>//g' file.html
Run Code Online (Sandbox Code Playgroud)
如果没有错误的余地,请改用HTML解析器.例如,当元素分布在两条线上时
<div
>Lorem ipsum</div>
Run Code Online (Sandbox Code Playgroud)
这个正则表达式不起作用.
这正则表达式由三个部分组成<,[^>]*,>
<*,当它开始查找不在类中的字符时,它们不是>[...]一个字符类^>更简单的正则表达式<.*>将不起作用,因为它搜索最长的匹配,即>输入行中的最后一个闭合.例如,当输入行中有多个标记时
<name>Olaf</name> answers questions.
Run Code Online (Sandbox Code Playgroud)
会导致
回答问题.
代替
奥拉夫回答问题.
另请参阅重复使用Star和Plus,尤其是注意贪婪!以下是详细说明.