私はHTMLを含むMySQLの列にテキストのBLOBフィールドを持っています。私はマークアップのいくつかを変更する必要があるので、私はルビースクリプトでそれをやると思った。ここではRubyは無関係ですが、その答えを見ることはうれしいでしょう。マークアップは次のようになります。ruby regexで検索して置き換えます
<h5>foo</h5>
<table>
<tbody>
</tbody>
</table>
<h5>bar</h5>
<table>
<tbody>
</tbody>
</table>
<h5>meow</h5>
<table>
<tbody>
</tbody>
</table>
私は一人で、文字列の残りの部分を残しながら<h2>something_else</h2>
に各テキストのちょうど最初の<h5>foo</h5>
のブロックを変更する必要があります。
Rubyを使用して、適切なPCRE正規表現を取得できないようです。
htmlにregexを使用する代わりに、HTMLパーサーを使用することを検討してください。それは[多くの](http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags)、[多くの](http:// stackoverflow。 com/questions/590747/use-regular-expression-to-parse-html-why-not)、[many](http://stackoverflow.com/questions/6751105/why-its-not-possible-to-use -regex-to-parse-html-xml-a-formal-explanation-in-la?lq = 1)回前に、RegexパーサーはHTMLを正確に解析することができません。 –
具体的には、[Nokogiri](http://nokogiri.org)を使用してHTMLを読み込んで操作し、その結果を出力することをお勧めします。 – Phrogz