【发布时间】:2017-06-19 03:26:03
【问题描述】:
我有很多 HTML 文件,其中包含很多不必要的标签。
<span class="foo">A</span><span class="foo">B</span><span class="foo">C</span>...
我正在尝试删除这一系列不必要的标签并像这样更改它们。
<span class="foo">ABC</span>
我在 Ruby 中使用了一个简单的正则表达式。
myhtml.gsub!(/<\/span><span class=".*?">/,"")
到目前为止它运行良好,但现在我对这样的标签有疑问:
<span class="foo">A</span><span class="bar">B</span><span class="foo">C</span>
我的正则表达式还删除了必要的标签,例如<span class="bar">.
我想像这样使用捕获组
<span class="(.+?)">(.+?)<\/span><span class="\1">...
但我不知道如何正确写。
如何重写正则表达式来解决?
编辑:感谢您的评论,但抱歉信息不足,
- 有很多类,如 "foo","bar","hoge","abc"...等
- 我不能指望连续标签有什么类。
- 另外,我无法预计每个 html 文件中有多少个连续标签
【问题讨论】:
-
所以基本上你正在尝试删除具有相同 css 类的标签,并且标签是否相同并且连续出现。
-
你或许可以使用github.com/rgrove/sanitize