phpbar.de logo

Mailinglisten-Archive

[php] Problem mit regulärem Ausdruck

[php] Problem mit regulärem Ausdruck

Peter Linzenkirchner peter at linzenkirchner.de
Sam Okt 29 20:27:43 CEST 2005


Hallo,

ich habe folgenden String:

beliebiger Text
[Liste]
zeile1
zeile2
zeile3
[/Liste]
beliebiger Text

Mein Ziel wäre, [Liste] durch <ul>, [/Liste] durch </ul>, die erste  
Zeilenschaltung durch <li>, die letzte durch </li> und alle  
dazwischen durch </li></li> zu ersetzen. Daran scheitere ich aber.

Im ersten Schritt kann ich [Liste] ersetzen, das schaffe ich:

$pattern = "!(\[L\])(.*)(\[\/L\])!isU";
$replace = "<ul><li>\\2</li></ul>";
$text = preg_replace($pattern, $replace, $text);

ergibt:
beliebiger Text
<ul><li>
zeile1
zeile2
zeile3
</li></ul>
beliebiger Text

aber im zweiten Schritt jetzt innerhalb von <ul> ... </ul> die  
Zeilenschaltungen ersetzen, das schaffe ich nicht.

$pattern1 = "!(<li>)(\n)*(</li>)!";
$replace1 = "\\1</li><li>\\3";

$text preg_replace($pattern1, $replace1, $text);

Das tut nicht ... kann auch nicht, aber ich weiss nicht, wie es  
richtig heissen würde.
Kann mir jemand auf die Sprünge helfen?

Danke
Peter


-- 
-----------------------------------------------
Peter Linzenkirchner
Lisardo Multimedia GmbH
http://www.lisardo.biz/
Herrenbachstraße 19, 86161 Augsburg
Tel. ++49-821-150565, Fax ++49-821-150595
-----------------------------------------------



php::bar PHP Wiki   -   Listenarchive