Mögliches Duplikat:
Was ist die ultimative Postleitzahl und Postleitzahl?
Ich brauche Regex, das alle meine drei Bedingungen für die Postleitzahl erfüllen kann. Z.B-
- 12345
- 12345-6789
- 12345 1234
Alle Hinweise und Vorschläge wäre sehr dankbar. Vielen Dank !
\d{5}([ \-]\d{4})?
.Antworten:
^
= Anfang der Zeichenfolge.\d{5}
= Übereinstimmung mit 5 Ziffern (für Bedingung 1, 2, 3)(?:…)
= Gruppierung[-\s]
= Entspricht einem Leerzeichen (für Bedingung 3) oder einem Bindestrich (für Bedingung 2)\d{4}
= Übereinstimmung mit 4 Ziffern (für Bedingung 2, 3)…?
= Das Muster davor ist optional (für Bedingung 1)$
= Ende der Zeichenfolge.quelle
\s
passt zu allen Leerzeichen, einschließlich Tabulatoren und neuen Zeilen.00544
eine gültige Postleitzahl;544
ist nicht./(^\d{5}(?:[\s]?[-\s][\s]?\d{4})?$)/
Nur für die aufgeführten drei Bedingungen funktionieren diese Ausdrücke möglicherweise auch:
Weitere Erklärungen finden Sie in dieser Demo.
Wenn wir unerwartete zusätzliche Leerzeichen zwischen 5 und 4 Stellen oder eine fortlaufende 9-stellige Postleitzahl gehabt hätten, wie zum Beispiel:
Dieser Ausdruck wäre beispielsweise eine sekundäre Option mit weniger Einschränkungen:
Weitere Erklärungen finden Sie in dieser Demo.
RegEx Circuit
jex.im visualisiert reguläre Ausdrücke:
Prüfung
quelle
Ich weiß, dass dies für die meisten Leute, die RegEx häufig verwenden, offensichtlich sein mag, aber falls Leser neu in RegEx sind, dachte ich, ich sollte auf eine Beobachtung hinweisen, die ich gemacht habe und die für eines meiner Projekte hilfreich war.
In einer früheren Antwort von @kennytm:
Wenn Sie sowohl standardmäßige 5-stellige als auch +4 Postleitzahlen zulassen möchten, ist dies ein gutes Beispiel.
Um nur Postleitzahlen im US-Format 'Postleitzahl + 4' zu finden, wie ich es tun musste (nur Bedingungen 2 und 3), entfernen Sie einfach die letzte,
?
damit sie immer mit der letzten 5-Zeichen-Gruppe übereinstimmt.Ein nützliches Tool, das ich zum Basteln mit RegEx empfehle, ist unten verlinkt:
https://regexr.com/
Ich benutze dieses Tool häufig, wenn ich RegEx finde, das etwas Ähnliches tut, was ich brauche, aber etwas besser angepasst werden könnte. Es hat auch ein raffiniertes RegEx-Referenzmenü und eine informative Oberfläche, die Sie darüber informiert, wie sich Ihre Änderungen auf die Übereinstimmungen mit dem von Ihnen eingegebenen Beispieltext auswirken.
Wenn ich etwas falsch gemacht oder eine wichtige Information verpasst habe, korrigieren Sie mich bitte.
quelle