phpbar.de logo

Mailinglisten-Archive

[php] RegEx-Ausdruck funzt nicht

[php] RegEx-Ausdruck funzt nicht

Yannik Hampe yannik at cipher-code.de
Mon Nov 5 11:07:59 CET 2007



Ulf Seltmann wrote:
> Yannik Hampe schrieb:
>> Reinhold wrote:
>>> $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. 
> Platzhalter stehen auch immer nur für ein Zeichen. Deren Vorkommen 
> bestimmen Modifikatoren wie ?, +, *, {}
> 
>> $rxp = '/WN(\s)?1707(\D.*)?$/is';
> nach einer Nicht-Ziffer darf dann aber kommen, was will:
> $alt = 'WN1707D2435452dfgfdg&/&(%$';
> reicht völlig und verwirrt nicht so wie Yanniks Vorschlag:
> $rxp = '/WN(\s)?1707\D*$/is';

Doch, dabei habe ich mir schon was gedacht:
$alt ='WN1707blablubb6d78';
Dann folgen da hinten nochmal irgendwo Zahlen und dein Regex geht nicht 
auf. Meiner schon.

Yannik

php::bar PHP Wiki   -   Listenarchive