regulärer Ausdruck
Glen
- perl
Hallo,
wie könnte ich es mit einem regulären Ausdruck hinbekommen dass
<h1>
<p>
Hier steht Text</p>
<p>
Hier steht Text</p>
</b>
</h1>
zu
<h1>
Hier steht Text</br>
Hier steht Text</br>
</h1>
wird?
Also jeweils <p> raus und das </p> durch </br> ersetzen.
Danke für Eure Hilfe
Gruß
Glen
Hi,
wie könnte ich es mit einem regulären Ausdruck hinbekommen dass
reguläre Ausdrücke sind nicht dafür geeignet, Strukturen zu analysieren. Mag sein, dass für Dein spezielles Beispiel eine RegExp existiert; Du solltest Dich jedoch unbedingt mit dem Parsen von Markup Languages und den dazugehörigen Modulen beschäftigen.
Cheatah
reguläre Ausdrücke sind nicht dafür geeignet, Strukturen zu analysieren.
Ich bin ja noch Anfänger auf dem Gebiet, aber ich dachte gerade dafür wären reguläre Ausdrücke geeignet.
Hi,
reguläre Ausdrücke sind nicht dafür geeignet, Strukturen zu analysieren.
Ich bin ja noch Anfänger auf dem Gebiet, aber ich dachte gerade dafür wären reguläre Ausdrücke geeignet.
im Gegenteil. Reguläre Ausdrücke erkennen Muster, keine Strukturen. Sie haben beispielsweise keine Chance, innerhalb einer mathematischen Formel zu erkennen, welche schließende Klammer zu einer bestimmten öffnenden Klammer gehört - und exakt den Fall hast Du bei HTML-Tags.
Cheatah
OK, bin ich schon wieder etwas schlauer.
Hi,
wie könnte ich es mit einem regulären Ausdruck hinbekommen dass
<h1>
<p>
Hier steht Text</p>
<p>
Hier steht Text</p>
</b>
</h1>zu
<h1>
Hier steht Text</br>
Hier steht Text</br>
</h1>wird?
Also jeweils <p> raus und das </p> durch </br> ersetzen.
wenn der obige Text in $html steht, mit
$html=~s|<p>(.*?)</p>|$1</br>|gis;
Das </b> bleibt so allerdings drin. Ich weiß nicht, was Cheatah hat: für genau sowas sind reguläre Ausdrücke doch da.
Gruß, Christoph
Hi,
Ich weiß nicht, was Cheatah hat: für genau sowas sind reguläre Ausdrücke doch da.
was ich habe? Erstens "Mag sein, dass für Dein spezielles Beispiel eine RegExp existiert;" gesagt, und zweitens erklärt, dass (und warum) reguläre Ausdrücke für genau sowas gerade _nicht_ da sind.
Cheatah
Hallo Cheatah,
was ich habe? Erstens "Mag sein, dass für Dein spezielles Beispiel eine RegExp existiert;" gesagt, und zweitens erklärt, dass (und warum) reguläre Ausdrücke für genau sowas gerade _nicht_ da sind.
dann hab ich da wohl was nicht mitgekriegt. Ich benutze seit Jahren Perl und reguläre Ausdrücke auf diese Weise und bin sehr zufrieden.
Christoph
Hi,
Ich benutze seit Jahren Perl und reguläre Ausdrücke auf diese Weise und bin sehr zufrieden.
dann waren Deine Problemfälle in dieser Richtung vermutlich äußerst einfach gestrickt.
Cheatah
Hi,
dann waren Deine Problemfälle in dieser Richtung vermutlich äußerst einfach gestrickt.
meistens schon, aber auch nicht immer. Z.B. kann man in Perl innerhalb von regulären Ausdrücken Programmcode einsetzen. Dadurch hat man ziemlich unbegrenzte Möglichkeiten. Gib doch mal ein Beispiel, bei dem man so nicht weiterkäme.
Christoph
-w -T
und
quotemeta $input;
RegExp sind STARK