Mailinglisten-Archive |
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