Ich habe ein Textblobfeld in einer MySQL-Spalte, die HTML enthält. Ich muss etwas vom Markup ändern, also dachte ich, ich mache es in einem Ruby-Skript. Ruby ist hier irrelevant, aber es wäre schön, eine Antwort zu sehen. Das Markup sieht wie folgt aus:Suchen und Ersetzen mit Ruby Regex
<h5>foo</h5>
<table>
<tbody>
</tbody>
</table>
<h5>bar</h5>
<table>
<tbody>
</tbody>
</table>
<h5>meow</h5>
<table>
<tbody>
</tbody>
</table>
ich gerade den ersten <h5>foo</h5>
Block jeden Text <h2>something_else</h2>
ändern muß, während der Rest der allein Zeichenfolge zu verlassen.
Scheint nicht die richtige PCRE-Regex zu bekommen, mit Ruby.
Ich flehe Sie an, einen HTML-Parser anstelle von Regex für HTML zu verwenden. Wie es schon gesagt wurde [http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags], [viele] (http: // stackoverflow. com/questions/590747/using-reguläre Ausdrücke-zu-analysieren-html-why-not), [viele] (http://stackoverflow.com/questions/6751105/why-its-not-possible-use-use -regex-to-parse-html-xml-a-formale-Erklärung-in-la? lq = 1) mal zuvor, Regex-Parser sind nicht in der Lage, HTML genau zu analysieren. –
Insbesondere empfehle ich, [Nokogiri] (http://nokogiri.org) zu verwenden, um Ihren HTML-Code zu laden, ihn zu manipulieren und dann das Ergebnis auszugeben. – Phrogz