我的文字类似于:
<p>some text ...</p><p>The post <a href="http://url_address/">text...</a> appeared first on <a href="http://url_address">some another text</a>.</p>
我需要删除<p>The post
中的所有内容,结果将是:
<p>some text ...</p>
我正在尝试这样做:
text.sub!(/^<p>The post/, '')
但它只返回一个空字符串......如何修复它?
答案 0 :(得分:4)
您的正则表达式不正确。它匹配字符串开头的每个<p>The post
。你想要相反:匹配从它的位置到字符串的结尾。看看这个。
s = '<p>some text ...</p><p>The post <a href="http://url_address/">text...</a> appeared first on <a href="http://url_address">some another text</a>.</p>'
s.sub(/<p>The\spost.*$/, '') # => "<p>some text ...</p>"
答案 1 :(得分:2)
'^'匹配整个字符串的开头。尝试做
text.sub!(/<p>The post/, '')
编辑只是仔细阅读...
text.sub!(/<p>The post.*$/, '')
答案 2 :(得分:2)