2012-11-28 154 views
1

我有一個類似的文字:紅寶石 - 刪除部分文字

<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> 

我想OT這樣做:

text.sub!(/^<p>The post/, '') 

但它只返回一個空字符串......如何解決這個問題?

回答

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>" 
2

'^'匹配整個字符串的開頭。嘗試做

text.sub!(/<p>The post/, '') 

編輯只是更仔細地閱讀它...

text.sub!(/<p>The post.*$/, '')