phpbar.de logo

Mailinglisten-Archive

[php] regex

[php] regex

Alex Emken php at emken.com
Mon Okt 11 00:48:48 CEST 2004


Michael Temeschinko wrote:
> Hallo Liste,
> 
> Ich hab mir folgenden regex überlegt (Es kommt aber eine Fehlermeldung)
> 
> Warning: Compilation failed: nothing to repeat at offset 0 in 
> /home/mictem/unbenannt.php on line 6
> 
> <?php
> preg_match("/* (+\d)* x+ (+\d)* (+\D)/i", $dummy, $Gebinde);
> was stimmt hier nicht?

Hallo Michael.

Wenn Du auf eins oder mehrere Leerzeichen überprüfen möchtest, musst Du 
" +" und nicht "+ " schreiben. Ein + bzw. * bezieht sich immer auf das 
Zeichen _nach_ dem es steht. In deinem Fall überprüfst Du gleich am 
Anfang ob _nichts_ keinmal, einmal oder x-mal vorkommt. Deswegen auch 
die Fehlermeldung. ;)

preg_match("/\s*(\d+)\s*x\s+(\d+)\s*(\D+)/i", $dummy, $Gebinde);

Ich habe die Leerzeichen durch \s ersetzt, was für jedes "Whitespace" 
(also auch Tab etc.) steht. Zusätzlich habe ich die Metazeichen + und * 
hinter die Leerzeichen gestellt. Habe es nicht getestet, aber so sollte 
zumindest die Fehlermeldung verschwinden.

Gruß,
Alex

php::bar PHP Wiki   -   Listenarchive