gsub一个字符串中包含不同字符的子字符串

时间:2016-12-07 19:12:31

标签: ruby string gsub

我正在寻找一种从字符串中删除一组不同数字的方法。

我有多个风格=""我在渲染API时要删除的标记。

< img src =" https://IMAGE.jpg" style =" width:1398px;"数据状态=" OK">

< img src =" https://IMAGE.jpg" style =" width:1393px;"数据状态=" OK">

< img src =" https://IMAGE.jpg" style =" width:1385px;"数据状态=" OK">

我想删除样式=""标签,我正在寻找一个gsub或正则表达式方法来做到这一点。

有些事情。

.gsub(&#39; style =&#34; width:**** px;&#34;&#39;,&#39;&#39;) < / p>

****是每个数字的任何数字0..9的解决方案吗?

1 个答案:

答案 0 :(得分:2)

虽然您可能不希望使用正则表达式执行此操作,但 hack 执行此操作的方式是:

gsub(/style="width:\s*\d+px;?"\s*/, '')

此处的密钥为\d+,表示一位或多位

更好的方法是使用像Nokogiri这样的HTML解析器来删除属性:

doc = Nokogiri::HTML(source)
doc.css('img').each do |img|
  img.remove_attr('style')
end
doc.to_s

还有stripping all style tags的方式。