Regulärer Ausdruck für ne Postleitzahl

Crai

Mitglied
Hallo,
ich hab mir für die Erkennung gültiger Telefonnummern einen regulären Ausdruck
überlegt, der das ganz gut macht.
Nun das Ganze für die Postleitzahl. Das sollte eigentlich einfach sein, sollte man meinen,
sind ja nur 2 Bedingungen:
-das Wort muss mindestens aus drei Zahlen bestehen
-darf nicht komplett aus Nullern bestehen

Bedingung 1 ist kein Porblem:
Pattern p = Pattern.compile("\\d{3,}");

aber wie realisiere ich in diesem Ausdruck Bedingung 2?

Hat jemand noch nen Link zu einer besseren Doku bzgl. Regulärer Ausdrücke in Java,
als die API Doku. es bietet?

Vielen Dank im Voraus,
CU
Crai
 
Du kannst in Regular Expressions auch eine nicht bedingung haben.


Ich würde es wie folgte ausdrücken:

Wenn der Ausdruck nicht nur aus Nullen besteht UND (!) aus Zahlen (!) dann ist es okay.

Dies könntest du mit 2 Reg-Exp. darstellen und bei deiner Abfrage die Und Verknüf
pfung her.....

Grüsse

Torsten.
 
Crai hat gesagt.:
-das Wort muss mindestens aus drei Zahlen bestehen
-darf nicht komplett aus Nullern bestehen

Hmm... wieso aus Drei?
Meiner Meinung nach aus 5... oder, wenn International, gehen auch Buchstaben...

Aber zur zweiten Abfrage: Nimm einmal alle Nullen heraus und guck ob ein leerer String rauskommt.
Sollte (keine garantie) mit .replaceAll("[0]","") gehen.
 
Larayna hat gesagt.:
Hmm... wieso aus Drei?
Meiner Meinung nach aus 5... oder, wenn International, gehen auch Buchstaben...

Aber zur zweiten Abfrage: Nimm einmal alle Nullen heraus und guck ob ein leerer String rauskommt.
Sollte (keine garantie) mit .replaceAll("[0]","") gehen.


Dies ist auch eine Möglichkeit, aber er fragte ja explizit nach Regular Expressions, oder hab ich da was falsch verstanden?

Grüsse

Torsten
 
Danke ihr beiden für eure Antworten! :)

Wenn der Ausdruck nicht nur aus Nullen besteht UND aus Zahlen dann ist es okay.

Müsste dann mein Ausdruck etwa die Form haben?:
p = Pattern.compile("\\d{3,}&[^0]*");
Ganz passen tut das nicht. In dem Punkt,bestimmte Sachen auszuschließen, hab ich die
API nicht verstanden. Da hackt es bei mir ganz explizit! :(

Hmm... wieso aus Drei?
Meiner Meinung nach aus 5... oder, wenn International, gehen auch Buchstaben...
Die PLZ sollte eigentlich international sein. Da hätte ich mich vielleicht besser informieren müssen, aber ich gebs zu, da war ich zu faul dazu! :)
Welches Format gilt dann im allgemeinen für internationale PLZ?

Danke für eure Mühen,
CU
Crai
 
So genau kann ich dir das nicht sagen.. aber ich weiss das Deutschland 5 Zahlen hat, und Amerika Buchstaben UND Zahlen (Die Buchstaben für den Bundesstaat)
Da eine allgemeine Regel zu finden wird schwer... wenn das WIRKLICH machen willst wirst du unter eine Abfrage an den User in welchem Land die PLZ liegt und einen Switch oder ähnliches dahinter nicht herumkommen.
 
Danke dir für deine Infos. Wenn ich mir das so anhöre, glaub ich nicht das ich das wirklich machen will. Mein Programm bleibt sowieso nur innerhalb eines beschränkten
Personenkreises und es ist sehr unwahrscheinlich, dass es sich weiter verbreitet. Mein
Vorhaben, das Telefonnummern und PLZ international gültig sein sollen, war nur mal eine Überlegung.
Ich bleib da dann doch lieber bei meinem Problem 3 Zahlen, dürfen nicht nur Nullen sein.
Denn,das wie in der API-Doc. erklärte negieren von Ausdrücken verknüpft mit einem andren Ausdruck hab ich nicht verstanden.
Kann mir jemand sagen, warum p = Pattern.compile("\\d{3,}&[^0]*"); falsch ist?

Jedem noch ein schönes Wochenende,
CU
Crai
 

Neue Beiträge

Zurück