Problem mit ereg_replace

Hallo!

Folgender Ausdruck

$text = ereg_replace("(.)\\1\\1([aeiouyäöü])", "\\1\\1\\2", $text);

sollte eigentlich aus der Zeichenkette "Kammmolch" (mit drei m) die
Zeichenkette "Kammolch" (mit zwei m) machen.

Warum funktioniert das nicht?

Danke!

M.
gail [ Do, 15 November 2007 19:10 ] [ ID #1871735 ]

Re: Problem mit ereg_replace

(Markus Gail) wrote:

>Folgender Ausdruck
>
> $text = ereg_replace("(.)\\1\\1([aeiouyäöü])", "\\1\\1\\2", $text);
>
>sollte eigentlich aus der Zeichenkette "Kammmolch" (mit drei m) die
>Zeichenkette "Kammolch" (mit zwei m) machen.
>
>Warum funktioniert das nicht?

Niemand kennt mehr ereg_*(), PHPs preg_*()-Funktionen mit perl
kombatiblen regulären Ausdrücken sind schneller und flexibler.

Dein Ausdruck scheint richtig zu sein, mit preg_replace() und ein paar
weniger Backslashes funktioniert es dann auch:

preg_replace('/(.)\1\1([aeiouyüäö])' . '/', '\1\1\2', $word)

schöne grüße, steffen
steffen bruentjen [ Fr, 16 November 2007 12:13 ] [ ID #1872721 ]

Re: Problem mit ereg_replace

steffen bruentjen <devnull [at] steffen.bruentjen.de> wrote:

> Niemand kennt mehr ereg_*(), PHPs preg_*()-Funktionen mit perl
> kombatiblen regulären Ausdrücken sind schneller und flexibler.
>
> Dein Ausdruck scheint richtig zu sein, mit preg_replace() und ein paar
> weniger Backslashes funktioniert es dann auch:
>
> preg_replace('/(.)\1\1([aeiouyüäö])' . '/', '\1\1\2', $word)

Ah! Jetzt klappt es! :)

Danke!

M.
gail [ Sa, 17 November 2007 11:09 ] [ ID #1873244 ]

Re: Problem mit ereg_replace

Markus Gail wrote:
> steffen bruentjen <devnull [at] steffen.bruentjen.de> wrote:
>> preg_replace('/(.)\1\1([aeiouyüäö])' . '/', '\1\1\2', $word)
>
> Ah! Jetzt klappt es! :)

Viel wichtiger wär es wohl zu wissen ob Du denn auch verstanden hast wo
die Probleme lagen...

MfG, Ulf

--
_,
_(_p> Ulf [Kado] Kadner
\<_)
^^
Ulf Kadner [ Sa, 17 November 2007 11:31 ] [ ID #1873246 ]

Re: Problem mit ereg_replace

Ulf Kadner <dr_logic [at] gmx.net> wrote:

> > steffen bruentjen <devnull [at] steffen.bruentjen.de> wrote:
> >> preg_replace('/(.)\1\1([aeiouyüäö])' . '/', '\1\1\2', $word)
> >
> > Ah! Jetzt klappt es! :)
>
> Viel wichtiger wär es wohl zu wissen ob Du denn auch verstanden hast wo
> die Probleme lagen...

Ich habe inzwischen eine ganze Zeit herumgegugelt und kann nicht
behaupten, daß ich jetzt sehr viel klarer sehe.

Gibt es irgendwo eine Übersicht, wo man die unterschiedliche Syntax
vergleichen kann?

M.
gail [ Sa, 17 November 2007 17:42 ] [ ID #1873264 ]

Re: Problem mit ereg_replace

Markus Gail meinte:

> Ulf Kadner <dr_logic [at] gmx.net> wrote:

>> Viel wichtiger wär es wohl zu wissen ob Du denn auch verstanden hast wo
>> die Probleme lagen...
>
> Ich habe inzwischen eine ganze Zeit herumgegugelt und kann nicht
> behaupten, daß ich jetzt sehr viel klarer sehe.
>
> Gibt es irgendwo eine Übersicht, wo man die unterschiedliche Syntax
> vergleichen kann?

Wozu? Die einzige Syntax, die noch interessiert ist jene der
preg_*-Funktionen. Infos gibt es dazu haufenweise.

v.a. hier:
http://at.php.net/manual/en/ref.pcre.php

ein nettes Tutorial:
http://www.regular-expressions.info/tutorial.html

Gregor


--
http://www.gregorkofler.at ::: Landschafts- und Reisefotografie
http://www.licht-blick.at ::: Forum für Multivisionsvorträge
http://www.image2d.com ::: Bildagentur für den alpinen Raum
Gregor Kofler [ So, 18 November 2007 11:18 ] [ ID #1873681 ]
PHP » de.comp.lang.php.misc » Problem mit ereg_replace

Vorheriges Thema: HTML_QuickForm: Probleme mit autocomplete-Feldern
Nächstes Thema: Weiterleitung innerhalb einer Anweisung