Frage zu Preg_Replace

Halli Hallo,

ich möchte gerne mittels Preg_replace nach einem bestimmten Wort in
einem String suchen und dieses ggfs. ersetzen. Allerdings soll eine
Ersetzung nur erfolgen, wenn das oder die Zeichen, daß nach dem zu
ersetzenden Wort folgt, kein Buchstabe(Groß oder Klein!) oder
Bindestrich ist.

Weiß jemand, wie ich das am besten hinbekomme?

Danke für Eure Hilfe

Jörg
joerg.nieswand [ Mi, 31 Oktober 2007 18:05 ] [ ID #1859295 ]

Re: Frage zu Preg_Replace

Jörg Nieswand schrieb:
> Halli Hallo,
>
> ich möchte gerne mittels Preg_replace nach einem bestimmten Wort in
> einem String suchen und dieses ggfs. ersetzen. Allerdings soll eine
> Ersetzung nur erfolgen, wenn das oder die Zeichen, daß nach dem zu
> ersetzenden Wort folgt, kein Buchstabe(Groß oder Klein!) oder
> Bindestrich ist.
>
> Weiß jemand, wie ich das am besten hinbekomme?

Das könnte funktionieren:

$string = "Das Katzenhaus. Das Katzen-Zubehörgeschäft. Die Katze, die
auf dem heissen Blechdach sitzt. Die Katzeübung";
echo "<p>".$string."</p>";
echo preg_replace("/Katze[^A-Za-z\-\x7F-\xFF]/", "Maus ", $string);

Probier mal aus, ob das reicht.
--
Mein Zeugs:
http://www.hadanite-marasek.de/classes.php
http://www.objektivsuche.de/
Ansonsten:
http://www.php-faq.de/q/q-newsgroup-wie-helfen.html
Hadanite Marasek [ Mi, 31 Oktober 2007 18:54 ] [ ID #1859296 ]

Re: Frage zu Preg_Replace

Jörg Nieswand wrote:
> ich möchte gerne mittels Preg_replace nach einem bestimmten Wort in
> einem String suchen und dieses ggfs. ersetzen. Allerdings soll eine
> Ersetzung nur erfolgen, wenn das oder die Zeichen, daß nach dem zu
> ersetzenden Wort folgt, kein Buchstabe(Groß oder Klein!) oder
> Bindestrich ist.
>
> Weiß jemand, wie ich das am besten hinbekomme?

In regulären Ausdrücken kann auf Zeichen getestet werden, ohne diese in
den Treffer aufzunehmen:

foo\b findet foo am Ende eines Wortes (also auch nur foo).
foo(?!bar) findet foo wenn kein bar folgt.
foo(?![a-zA-Z-]) findet foo wenn kein Buchstaben oder Minuszeichel
folgt.
vgl. Doku: http://de2.php.net/manual/en/reference.pcre.pattern.syntax.p hp

Heiko
--
http://portal.richler.de/ Namensportal zu Richler
http://www.richler.de/ Heiko Richler: Computer - Know How!
http://www.richler.info/ private Homepage
Heiko Richler [ Mi, 31 Oktober 2007 23:26 ] [ ID #1859303 ]

Re: Frage zu Preg_Replace

Hi,

danke für Eure Hilfe. Es funktioniert :-))


> $string = "Das Katzenhaus. Das Katzen-Zubehörgeschäft. Die Katze, die
> auf dem heissen Blechdach sitzt. Die Katzeübung";
> echo "<p>".$string."</p>";
> echo preg_replace("/Katze[^A-Za-z\-\x7F-\xFF]/", "Maus ", $string);
joerg.nieswand [ Do, 01 November 2007 03:08 ] [ ID #1860260 ]
PHP » de.comp.lang.php.misc » Frage zu Preg_Replace

Vorheriges Thema: http-Zugriff simulieren
Nächstes Thema: Saubere Umsetzung des MVC-Modells