phpbar.de logo

Mailinglisten-Archive

[php] RegEx-Ausdruck funzt nicht

[php] RegEx-Ausdruck funzt nicht

Yannik Hampe yannik at cipher-code.de
Son Nov 4 23:34:57 CET 2007



Reinhold wrote:
> Hallo Felix,
> 
>> Scheint also zu funktionieren?
> 
> ich war zunächst verblüfft - Du hattest natürlich Recht.
> 
> Dann habe ich festgestellt dass ich folgende "Kleinigkeit" in meinem hiesigen Beispiel übersehen hatte: Ich lese die Daten aus einer Datei aus, die durch Tabulatoren getrennt ist. Und dann kommt u.a. so etwas heraus wie folgt:
> 
> $str = "WN1707";
> $alt = "WN17072";
> $rxp = '/WN(\s)?1707\D/is';
> 
> print preg_match($rxp, $str);
> print preg_match($rxp, $alt);
> 
> Dann sind beide Fälle False.
> Verstehe nicht, warum auch der Erste False ist.
> Es kommt keine Ziffer nach 1707, und das bedeutet doch der Parameter \D !?

NEIN!
\d = [0-9]
\D = [^0-9]
Einen Platzhalter, der für etwas oder auch nichts steht gibt es nicht. 
\D heisst es kommt ein nicht-Ziffer. Nicht es kommt garnichts mehr.
Nimm einfach den hier:
$rxp = '/WN(\s)?1707(\D.*)?$/is';
Ist ungetested, sollte meines erachtens aber gehen.

Yannik

php::bar PHP Wiki   -   Listenarchive