2012-11-28 3 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> 

Я пытаюсь О.Т. сделайте это так:

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/, '') 

EDIT просто читать более внимательно ...

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

Вы указали ^, что соответствует началу строки. Вы должны сделать

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

Играть с этим в http://rubular.com/r/c91EbHN0Af

Смежные вопросы