phpbar.de logo

Mailinglisten-Archive

[php] preg_replace (Pattern)

[php] preg_replace (Pattern)

Mathias Gloss mgloss at amadeus.net
Don Jul 22 12:33:52 CEST 2004


Aloha,




> From: Michael Post <michael.post at purematic.de>@phpbar.de  on 22.07.2004 
11:52 ZE2

> Leider erhalte ich eine Fehlermeldung.
> Warning: Unknown modifier '{' in /srv/www/....
> preg_match('(\+ {0,1}){0,1}[0-9]+ *(\([0-9]*\)){0,1}[0-9 \-/]+', 
> $_REQUEST['tel']);

üblicherweise ist ein RegExp in der Form "/ ...... /x",
wobei zwischen den / der eigentliche Regexp ist und x
ein Modifier sein _kann_.
Der / kann auch ein anderes Nichtalphanumerisches Zeichen sein,
z.B. ° . Das hat dann den Vorteil, daß man den / nicht escapen
muß, wenn er z.B. in Pfaden vorkommt.

Ich glaube du wolltest so etwas schreiben:

preg_match('/(\+ {0,1}){0,1}[0-9]+ *(\([0-9]*\)){0,1}[0-9 \-/]+/', ...
oder
preg_match('°(\+ {0,1}){0,1}[0-9]+ *(\([0-9]*\)){0,1}[0-9 \-/]+°', ...

Wobei du nur prüfst, ob der Ausdruck _irgendwo_ in der Telefonnummer
vorkommt. Wenn du prüfen willst, ob _nur_ dein Ausdruck vorkommt, musst
du noch ^ für den Anfang der Zeichenkette und $ für das Ende der Zeichen-
kette benutzen.

==> 
preg_match('/^(\+ {0,1}){0,1}[0-9]+ *(\([0-9]*\)){0,1}[0-9 \-/]+$/', ...

Grüße, Mathias




php::bar PHP Wiki   -   Listenarchive