Regulärer Ausdruck: Mehrzeiliger String
André Laugks
- programmiertechnik
0 lulu0 André Laugks0 lulu
Hallo!
Ich habe einen mehrzeiligen String, bei dem ich den Steinname und Farbnamen holen möchte. Im Quelltext steht der String aber über mehrere Zeilen. Bei den Zeilenanfängen- und enden befinden sich nicht nur Leerzeichen sondern auch Tabulatoren.
Gibt es eine Möglichkeit die zu erfassen? Mit \m bekomme ich es nicht hin. Ich könnte nach jedem Tag ein [\s\t] setzen oder mit suchen&ersetzen entfernen, was auch funktioniert nur eben unbefriedigend.
<?PHP
function print_var($var)
{
echo "<pre>";
echo var_dump($var);
echo "</pre>";
}
$string = ' <div class="divStein">
<div class="divBild"><img src="../../../p30_Produkte/341_bordsteine_leisten/h8.jpg" width="110" height="110"></div>
<div class="divBeschreibung"><span class="textTitel">Steinname
</span><br>
<span class="textFarbe">Farbe</span></div>
<div class="divPreislsite"><img src="../../../p_Allgemein/pfeil_css.gif" width="4" height="7" alt=">" border="0" class="imgPfeil"><a href="341_p_bor_lei.htm#h7" target="_self" class="linkpreisliste">Preisliste</a></div>
</div>';
$regExp = '<div class="divBeschreibung"><span class="textTitel">(.*)</span><br><span class="textFarbe">(.*)</span></div>';
preg_match('/' . preg_quote($regExp, "/") . '/im', $string, $output);
print_var($output);
?>
MfG, André Laugks
Huhu André
Im Quelltext steht der String aber über mehrere Zeilen.
Dann hilft Dir wahrscheinlich der Modifer s weiter.
Der Punkt "matched" dann auch auf "newlines".
Viele Grüße
lulu
Hallo!
Dann hilft Dir wahrscheinlich der Modifer s weiter.
Der Punkt "matched" dann auch auf "newlines".
\s bringt auch nichts. ich denke der hängt sich an den Tabs auf.
MfG, André Laugks
Huhu André
\s bringt auch nichts. ich denke der hängt sich an den Tabs auf.
Nö, eigentlich nicht.
Hier mal zwei "RegExpse" die so ungefähr das tun "wo ich denke dass Du das willst".
Kannst ja mal schauen ob Dir das weiterhilft.
<?PHP
function print_var($var)
{
echo "<pre>";
echo var_dump($var);
echo "</pre>";
}
$string = ' <div class="divStein">
<div class="divBild"><img src="../../../p30_Produkte/341_bordsteine_leisten/h8.jpg" width="110" height="110"></div>
<div class="divBeschreibung"><span class="textTitel">Steinname
</span><br>
<span class="textFarbe">Farbe</span></div>
<div class="divPreislsite"><img src="../../../p_Allgemein/pfeil_css.gif" width="4" height="7" alt=">" border="0" class="imgPfeil"><a href="341_p_bor_lei.htm#h7" target="_self" class="linkpreisliste">Preisliste</a></div>
</div>
<div class="divStein">
<div class="divBild"><img src="../../../p30_Produkte/341_bordsteine_leisten/h8.jpg" width="110" height="110"></div>
<div class="divBeschreibung"><span class="textTitel">Tiername wie war der noch gleich
Fiffi oder Waldi ?
</span><br>
<span class="textFarbe">FellFarbe</span></div>
<div class="divPreislsite"><img src="../../../p_Allgemein/pfeil_css.gif" width="4" height="7" alt=">" border="0" class="imgPfeil"><a href="341_p_bor_lei.htm#h7" target="_self" class="linkpreisliste">Preisliste</a></div>
</div>
';
$regExp = '#<span class="textTitel">(.*)</span>(?:.*)<span class="textFarbe">(.*)</span>#Uis';
$regExp = '#<span class="(.*)">(.*)</span>#Uis';
preg_match_all($regExp, $string, $output);
print_var($output);
?>
Viele Grüße
lulu