phpbar.de logo

Mailinglisten-Archive

[php] Auch ein RegExp

[php] Auch ein RegExp

Claudius Ceteras claudius at gmx.de
Fre Okt 29 01:54:17 CEST 2004


Hallo Albin,
 
> ich habe eigentlich zur Zeit "nur" ein Problem mit einem RegEx:
> Ich möchte eine UTMREF Koordinatenangabe (auch als MGRS 
> bekannt ;-) matchen, diese ist so aufgebaut:
> Ein oder zwei Ziffern zwischen 0 und 6 (eigentlich eine Zahl 

0?[1-9]|[1-5][0-9]|60

> zwischen 1 und 60) Ein Großbuchstabe, aber nicht A, B, I, O, Y, Z

[CDEFGHJKLMNPQRSTUVWX]

> Zwei Großbuchstaben, aber nicht I und O Zehn Ziffern 

[ABCDEFGHJKLMNPQRSTUVWXYZ]{2}

> zwischen 0 und 9

[0-9]{10}

> 
> Ich habe darauf aufbauend folgendes Muster zusammengesetzt:
> \b[0-6]{1,2}[^ABIOYZ]{1}[^IO]{2}[0-9]{10}\b

Das ist halt ein wenig ungenau... [^ABIOYZ] z.B. matcht ja auch auf 0-9
etc...

> Dieses matcht mir aber auch zum Beispiel folgende Angabe:
> 33UN1234512345, was aber falsch ist, da sie nur 2 Buchstaben 
> beinhaltet.

Nun... [^ABIOYZ] matcht auf deine zweite 3 und deswegen wird es
angenommen...

> Sie matcht mir aber *nicht* 7TUN1234512345, was an sich 
> richtig wäre, da die Zone 7 existiert...

Das matcht nicht, weil es hinten nur 9 ziffern sind. Ist das erlaubt?


Also... Nach deinen Angaben haben wir bis jetzt folgendes:

(0?[1-9]|[1-5][0-9]|60)[CDEFGHJKLMNPQRSTUVWX][ABCDEFGHJKLMNPQRSTUVWXYZ]{2}[0
-9]{9,10}

Überprüf wieviel Ziffern hinten wirklich stehen müssen, dann sollte es
stimmen...


Gruss,

Claudius


php::bar PHP Wiki   -   Listenarchive