Ihr Ausdruck entspricht:
^09[1-9]{2}(^0[1-9]{1}[0-9]{6}|[1-9]{1}[0-9]{7})$
die auch kürzer geschrieben werden als:
^09[1-9]{2}(^0[1-9]{1}\d{6}|[1-9]{1}\d{7})$
Jetzt haben Sie einen Fehler in der gemacht Mitte ist ^0
. Wahrscheinlich wollte man [^0]
(alles nicht Null):
^09[1-9]{2}([^0][1-9]{1}\d{6}|[1-9]{1}\d{7})$
Aber das größte Problem ist dieser Teil:
09[1-9]{2}
Matches insgesamt 4 Ziffern
[^0][1-9]{1}\d{6}
Matches insgesamt 8 Ziffern
[1-9]{1}\d{7}
passt auch insgesamt 8 Ziffern
versuchen Sie also 8 + 4 = 12 Ziffern zu entsprechen, während Telefonnummer 11.
hat ich wette, dass Sie Ausdruck sein wollte: Spiele vor
^09[1-9]{2}([1-9]{1}\d{6}|[1-9]{1}\d{6})$
Und jetzt werden Sie diese abwechselnd bemerken und nach |
sind gleich! So macht diesen Ausdruck noch kleiner:
^09[1-9]{2}([1-9]{1}\d{6})$
Wenn wir Gruppierung der letzten 7 Ziffern entlassen können - wir Ähnliche Teile bemerken: [1-9]{2}
und [1-9]{1}
. Auf diese Weise kann weiteren Ausdruck reduzieren:
^09[1-9]{3}\d{6}$
Demo
warum hast du '^', Anfang des Strings, am Anfang und in der Mitte der Regex? Wie würde das jemals zusammenpassen? –