Я пытаюсь проанализировать RSS-канал с помощью simple-rss lib.
К сожалению, я получил много мусора в узле:
<description><p> some decryption </p> <a href="http://url.com/trac/xxx/wiki/foo?action=diff&amp;version=28">(diff)</a></description>
Мне нужно получить текст («некоторое описание») и, при желании, URL.
Каков наилучший способ сделать это? Regexp (если это ответ, можете ли вы привести пример, пожалуйста?)?
Это не мусор. Это просто санированная HTML строка символов. И я предполагаю, что по URL, вы имеете в виду с тегами HTML (<a></a>). Следующий код должен работать.
<a></a>
require 'cgi' description = "</p> <a href=\"http://url.com/trac/xxx/wiki/foo?action=diff&amp;version=28\">(diff)</a>" CGI.unescapeHTML(description) # => </p> <a href="http://url.com/trac/xxx/wiki/foo?action=diff&version=28">(diff)</a>
Если вы не хотите использовать теги html, есть несколько способов просто получить URL. Должно сработать простое регулярное выражение для URL, которое я оставляю на ваше усмотрение (Подсказка - Google)