从文本中删除正则表达式短语

时间:2017-09-11 11:04:15

标签: ruby regex

我有一条新闻文字,其中我获得了我不需要的HTML属性。如何删除红宝石中的短语,如

  

img width =" 750" ALT =" 4.jg" C =" /unload/medialiy/df6/4.jg"高度=" 499"   标题= 4.jg"

     

img width =" 770" ALT =" 5.jg" C =" /unload/medialiy/ty6/5.jg"   高度=" 499"标题= 5.jg"

所以我需要一些像news.sub('/img*jg"/, '')这样的正则表达式。但它没有用。

2 个答案:

答案 0 :(得分:1)

我会用:

img .*\.jg"

test

如果你想在正则表达式中说“任意数量的任何符号”,请使用.*点表示任何符号,星号表示任何数量。

但你确定你不想包括角撑吗?

<img .*\.jg">

顺便说一句,如果属性的顺序会改变怎么办?然后你将无法匹配img标签。我们真的需要带有.jg"子字符串的img标记。

<img [^>]*\.jg"[^>]*>

test

答案 1 :(得分:0)

在您的特定情况下,您可以这样做:

element = '<img width="750" alt="4.jg" c="/unload/medialiy/df6/4.jg" height="499" title="4.jg">'

puts element.gsub(/(width|alt)=\"[^ ]+\" ?/, '')

你也可以使用这个正则表达式here

但如果您需要更强大的解决方案,请尝试查看Nokogiri gem。 This这个问题可以提供帮助。