2010-11-19 8 views

Antwort

2
/^1\d{8}/ 

Die erste Zahl 1 wird Ihre erste Stelle sein, so sollte die quantifier 8.

+0

Sie möchten Ihr Muster erneut scannen? Was ist mit der '8' am Ende? – tchrist

+0

@tchrist Whoops - epischer Tippfehler! – alex

1

Wenn Sie 9 brauchen Startnummern mit einer dann müssen Sie nur die Wiederholung der Zeichenklasse zu acht (8) begrenzen:

"/^1[0-9]{8}$/" 

Sie „\“ In Ihrer Probe. Wenn Sie Leerzeichen verwenden müssen, verwenden Sie ein Leerzeichen oder \s für Leerzeichen: [0-9 ] oder [0-9\s].

+0

groß sein! Vielen Dank :) – Zac

+1

Ahmad, technisch sind Sie nicht "Begrenzung der Charakterklasse", eher beschränken Sie seine * Wiederholung *. Die Begrenzung der Zeichenklasse auf 8 würde wie '[0-8] 'oder auch nur' [8] 'aussehen. ;-) –

+0

@Mike aktualisiert für Klarheit, danke! –

1
^(?=1)\d{9}$⁠ ⁠ ⁠ ⁠ ⁠ ⁠ ⁠ ⁠ ⁠ ⁠ ⁠ ⁠ ⁠ ⁠ ⁠ 
+0

Ich frage mich nur, gibt es einen Vorteil von einem positiven Lookbehind nur über den Abgleich (dh, wenn Ihr Regex-Konsum nicht auf Sie zutrifft)? – alex

+0

+1 für die positive Behauptung, während kein Standard, es ist schön, praktische Verwendungen für sie zu finden. – elmt

+0

Der Hauptvorteil ist, dass es im Code sagt, was ich denke, dass es gefragt wurde: 9 Ziffern, die erste ist eine 1. So müssen Sie nicht zusätzliche Mathematik zu tun. Es gibt ein Problem im Zusammenhang mit Nicht-ASCII-Ziffern, aber ich bezweifle, dass dies zu Ihrem Datensatz führen wird. Andererseits liege ich oft falsch, also solltest du vorsichtig sein, nur ASCII-Daten zu bekommen. – tchrist

Verwandte Themen