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