PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : preg muster will nicht fitten


theripper8472
02.05.2004, 05:04:53
hi

ich bastle an nem computer algebra system und da machen mir gleich am anfang die regulären expressions das leben schwer.
ich will ne dezimalzahl vom anfang eines strings erkennen.
den regex code für floats hab ich aus dem php handbuch genommen und etwas umgeformt.


$str='123.4';
$match='/^(([0-9]+)[.]([0-9]*))/';
$to='x';
$str=preg_replace($match,$to,$str);
//$str ist jetzt 'x'

$str='123.4';
$match='/^( (([0-9]*)[.]([0-9]+)) | (([0-9]+)[.]([0-9]*)) )/';
$to='x';
$str=preg_replace($match,$to,$str);
//$str ist jetzt '123.4'
//wenn die beiden branches in diesem $match vertauscht werden, kommt das gleiche raus

(eigentlich benutze ich preg_match, aber da wäre der beispielcode zu umständlich)

kann mir wer sagen, warum regex hier so seltsam reagiert? eigentlich müsste doch die längste zeichenkette gegriffen werden ("greedy" by default...)

thx

theripper8472
02.05.2004, 05:07:31
sorry,

hab gedacht, die leerzeichen _zwischen den klammern_ werden ignoriert.

an admins/mods: bitte den thread löschen