2017-03-01 30 views
0

I einen regulären Ausdruck benötigen, das eine oder mehr Telefonnummern entspricht, die 0-9 und +, können durch Semikolons (;) und die Anzahl Länge getrennt werden kann, 7 oder mehr Zeichen -, _.Regex enthält eine oder mehr Telefonnummer

wie folgt aus:

1234567 
1234567;1234567 
1234567;+0591234567 
1234567777;1234567777;1234567891 

ich den folgenden regulären Ausdruck versucht haben, aber es ist fehlgeschlagen:

^[0-9.-_+]{7,}(;[0-9.-_+]{7,})*$ 
+2

Mögliches Duplikat von [Ein umfassender Regex zur Überprüfung der Telefonnummer] (http://stackoverflow.com/questions/123559/a-comprehensive-regex-for-phone-number-validation) – miken32

+0

Sie müssen präziser über sein was Sie versuchen zu tun, und zeigen Sie, wie Sie diese Regex verwenden. Wenn ich deine Absichten erraten habe, sollte es funktionieren: https://regex101.com/r/WP4p6F/1 – Pshemo

Antwort

2

Es ist fast richtig nur müssen Sie \ verwenden (zurück Strich) vor der Zeichen, die in regexp verwendet werden. Versuchen it-

^[0-9.\-_+]{7,}(;[0-9.\-_+]{7,})*$ 

UPDATE:

Es ist vollkommener als die Vorige-

(?<=\;|\A)[\+\-\_]?\d{7,}(?=\;|\Z) 

Sie können versuchen, es here. Kredit geht an @sudoman 's Kommentar.

+0

Nur '-' ist besonders in' [..] ', da es verwendet werden kann, um Zeichenbereiche wie' az zu erstellen '. Wir müssen uns nicht '.' Oder '+' dort entziehen. – Pshemo

+0

Und Sie müssen nicht entkommen '-', wenn es das letzte Zeichen ist – miken32

+1

'+' Zeichen wird in regexp als 1 zu INF Wiederholungen verwendet, '-' wird verwendet, um einen Bereich zu erwähnen, '.' wird verwendet, um irgendein Zeichen zu erwähnen. Also musst du ihnen entkommen. –