У меня есть текстовое поле blob в столбце MySQL, который содержит HTML. Мне нужно изменить часть разметки, поэтому я решил, что сделаю это в рубиновом скрипте. Ruby здесь не имеет значения, но было бы неплохо увидеть ответ с ним. Разметка выглядит следующим образом:поиск и замена ruby regex
<h5>foo</h5>
<table>
<tbody>
</tbody>
</table>
<h5>bar</h5>
<table>
<tbody>
</tbody>
</table>
<h5>meow</h5>
<table>
<tbody>
</tbody>
</table>
мне нужно изменить только первый блок <h5>foo</h5>
каждого текста в <h2>something_else</h2>
, оставляя остальную часть строки в одиночку.
Невозможно получить правильное регулярное выражение PCRE, используя Ruby.
Я прошу вас рассмотреть использование парсера HTML вместо использования regex для html. Как было сказано [много] (http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags), [много] (http: // stackoverflow. com/questions/590747/using-regular-expressions-to-parse-html-why-not), [много] (http://stackoverflow.com/questions/6751105/why-its-not-possible-to-use -regex-to-parse-html-xml-a-formal-explain-in-la? lq = 1) раз, парсеры Regex неспособны точно анализировать HTML. –
В частности, я рекомендую использовать [Nokogiri] (http://nokogiri.org), чтобы загрузить ваш HTML-код, обработать его, а затем испустить результат. – Phrogz