Thread RegEx Frage (capturing) (9 answers)
Opened by docsnyder at 2006-09-25 17:32

docsnyder
 2006-09-25 17:32
#70238 #70238
User since
2005-09-08
300 Artikel
BenutzerIn
[Homepage] [default_avatar]
Hi!

Kann mir jemand sagen, warum der folgende RegEx

Code: (dl )
(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3});


zum Matchen von IP-Adressen "nicht" mit dem folgenden RegEx identisch ist?

Code: (dl )
(?:(\d{1,3})\.){3}(\d{1,3})


Matcht man gegen "10.20.30.40", sind beim ersten RegEx $1, $2, $3, $4 entsprechen mit "10", "20", "30", "40" belegt. Beim zweiten RegEx dagegen, sind nur $3 und $4 mit "30" bzw. "40" belegt.

Beide RegEx matchen, aber beim Zweiten wird beim wiederholten Capturing "(?:(\d{1,3})\.){3}" nur einmal gecaptured, und zwar der letzte Match.

Warum ist das so?

Gruß, Doc

View full thread RegEx Frage (capturing)