2017-05-09 4 views
-1

Ich habe versucht, eine Regex zu einer 10 oder 12 Ziffern Kombination zu schreiben. wie:Regex, um nur 10 oder 12 Ziffern zu python

1234567890 - Wahre
123456789012 - Wahre
12345678901 - Falsche
123456- Falsch

1234567890123- Falsch

nur entweder 10 oder 12 Ziffern entsprechen. Ich versuchte dies:

"^[0-9]{10}|[0-9]{12}$" 

Antwort

6

Sie nah dran sind!

Dies ist die Regex, die Sie suchen: ^(\d{10}|\d{12})$. Es prüft auf Ziffern (mit \d). Der Rest ist mehr oder weniger Ihr Code, mit Ausnahme der Klammer. Es erfasst jede Gruppe. Sie könnten diese verlieren, wenn Sie ohne es arbeiten wollen!

See it in action here

+0

Nur um meine Antwort hinzuzufügen: [regex101.com] (http: // regex101.com) ist eine gute Möglichkeit, Regex zu lernen. Jedes Mal, wenn du es brauchst, tummle einfach herum und behalte die Legende unten rechts im Auge. Früher habe ich mich an Regex gewöhnt, aber diese Seite hat mir viel durch Versuch und Irrtum gelehrt! –

1

Ihre regex entweder passen 10 Ziffern am Beginn einer Zeichenfolge (mit beliebigen Zeichen Danach erlaubt mehr) oder 12 Stellen am Ende der Zeichenfolge. Eine Möglichkeit, Ihre regex Arbeit zu machen ist:

"^[0-9]{10}$|^[0-9]{12}$" 

obwohl es besser ist, rohe Strings für das Muster zu verwenden:

r'^[0-9]{10}$|^[0-9]{12}$' 
Verwandte Themen