当前位置: 首页 > 面试题库 >

sed从html文件中删除标签

漆雕彦
2023-03-14
问题内容

我需要使用sed命令使用bash脚本从html中删除所有html" target="_blank">标签。我尝试了这个

sed -r 's/[\<][\/]?[a-zA-Z0-9\=\"\-\#\.\& ]+[\/]?[\>]//g' $1

和这

sed -r 's/[\<][\/]?[.]*[\/]?[\\]?[\>]//g' $1

但我仍然想念什么,有什么建议吗?


问题答案:

您可以使用许多HTML到文本转换器之一,可以使用Perl
regex,<.+?>或者必须sed使用<[^>]*>

sed -e 's/<[^>]*>//g' file.html

如果没有错误的余地,请改用HTML解析器。例如,当元素分布在两行上时

<div
>Lorem ipsum</div>

此正则表达式将不起作用。

这正则表达式由三个部分组成<[^>]*>

  • 寻找开放 <
  • 后面跟着零个或多个字符*(不是结尾)>
    [...]是字符类,当它开始^查找
    不在 类中的字符时

  • 最后寻找关闭 >

更简单的正则表达式<.*>将不起作用,因为它会搜索可能的最长匹配项,即>输入行中的最后一个结束符。例如,当输入行中有多个标签时

<name>Olaf</name> answers questions.

将导致

回答问题。

代替

奥拉夫回答问题。

另请参阅与Star和Plus重复,特别是当心贪婪!接下来,进行详细说明。



 类似资料:
  • 问题内容: 是否有从Java字符串中删除HTML的好方法?一个简单的正则表达式 会起作用,但是不会正确转换,并且两个尖括号之间的非HTML也会被删除(即,正则表达式中的将会消失)。 问题答案: 使用HTML解析器代替正则表达式。对于Jsoup来说,这简直太简单了。 Jsoup还支持对可定制的白名单,如果你希望只允许例如这是非常有用的去除HTML标签,和。

  • 问题内容: 有没有一种简单的方法可以在JavaScript中获取html字符串并去除html? 问题答案: 如果您在浏览器中运行,那么最简单的方法就是让浏览器为您完成… 注意:正如人们在评论中所指出的那样,如果您不控制HTML的源代码(例如,请勿在可能来自用户输入的任何内容上运行此代码),则最好避免这种情况。对于这些情况,您仍然可以让浏览器为您完成工作-

  • 问题内容: 有没有一种简单的方法可以在JavaScript中获取html字符串并去除html? 问题答案: 如果您在浏览器中运行,那么最简单的方法就是让浏览器为您完成… 注意:正如人们在评论中所指出的那样,如果您不控制HTML的源代码(例如,请勿在可能来自用户输入的任何内容上运行此代码),则最好避免这种情况。对于这些情况,您仍然可以让浏览器为您完成工作。

  • 问题内容: 我有一个要在其中显示表行的表,它是一个组件。我也想将数据传递给该组件: 在中,HTML包含一些从和渲染的数据。 但是渲染后,由于我的CSS损坏,导致所有HTML(整个表格行)都显示在第一列中。 以上结果: 我尝试了以下方法: 但这会导致错误。 我也不能使用,因为我想呈现HTML。 如何呈现不带标签的模板? 其他答案是角度的早期版本。我正在使用Angular 4.3.4。 任何帮助,将不

  • 问题内容: 是否有从Java字符串中删除HTML的好方法?一个简单的正则表达式 会起作用,但是;不会正确转换,并且两个尖括号之间的非HTML也会被删除(即.,正则表达式中的将会消失)。 问题答案: 如果你是为Android编写的,则可以这样做…

  • 问题内容: 我正在使用HTML Purifier(http://htmlpurifier.org/) 我只想删除标签。我不想删除内联格式或任何其他内容。 我该如何实现? 还有一件事,它还有其他方法可以从HTML删除脚本标签 问题答案: 因为这个问题是用正则表达式标记的,所以在这种情况下,我将用穷人的解决方案来回答: 但是,正则表达式不是用于解析HTML / XML的,即使您编写了一个 完美的 表达