2017-02-08 2 views
0

ich diese Regex für Telefonnummern in Neuseeland haben:Regex - Telefonnummern oder leeren Raum nicht funktioniert

^\+?[\d\s\(\)]{1,14}$|^((\+?64\s*[\(]?2\d{1}[\)]?|\(?02\d{1}\)?)\s*\d{3}\s*\d{3,5})$ 

enter image description here

Ich möchte auch eine leere Zeichenfolge ermöglichen, damit ich was zu tun das Internet sagt zu tun (fügen ^$| nach vorne):

enter image description here

Wie Sie es die meisten der Verabschiedung Zahlen scheitern macht sehen. Es tut das gleiche, wenn ich Klammern an die Front anlege.

Wie erlaube ich leere Strings und auch Telefonnummern mit dem Ausdruck oben in dieser Frage?

Bitte kopieren Sie diese Paste in regexr.com mit möglichen Lösungen zu experimentieren:

Ausdruck:

^\+?[\d\s\(\)]{1,14}$|^((\+?64\s*[\(]?2\d{1}[\)]?|\(?02\d{1}\)?)\s*\d{3}\s*\d{3,5})$ 

Text:

Positive: 
021 755 2375 

+79261234567 
9261234567 
+1234567 
89261234567 
4035555678 
23423 
3454 
021 2343234 
926 3 4 
1 416 555 9292 
926 1234567 
495 1234567 
+7 555 1234567 
+7(926)1234567 
(926) 1234567 
469 123 45 67 
0800 345345786 
09 419 7555 
0800 475 4669 
202 555 4567 

Negative: 

027 .343 -454 
8 800 600-APPLE 
+42 555.123.4567 
926.123.4567 
64 25 .435 -34323 
025 .435      -343 
123-4567 
123-89-01 
+1-(800)-123-4567 
8 (926) 1234567 
415-555-1234 
650-555-2345 
(416)555-3456 
09-419 7555 
364563456345645643565346768 
+1

Ist es nicht abgestimmt, nur nichts zu erfassen? https://regex101.com/r/afxv6D/1 – chris85

+0

@ chris85 Es funktioniert nicht in Regexr.com wie auf dem Foto gezeigt. Warum gibt es nichts zu erfassen? Ich habe den Text zu erfassen. – BeniaminoBaggins

+1

Leer ist nichts, oder es ist mir. Wo verwenden Sie das, wie wollen Sie leer darstellen? Ich bin nicht vertraut mit "regexr.com" Ich habe immer regex101 oder meine aktuelle Sprache verwendet. Haben Sie Probleme mit Ihrer tatsächlichen Implementierung? – chris85

Antwort

1

Verwenden Gruppierung:

(?:^$)|(?:^\+?[\d\s\(\)]{1,14}$|^((\+?64\s*[\(]?2\d{1}[\)]?|\(?02\d{1}\)?)\s*\d{3}\s*\d{3,5})$) 

Demo

+0

Danke. In regexr.com funktioniert es nicht und es gibt einen Fehler, der besagt, dass es unendlich übereinstimmt. Ist das nichts worüber man sich Sorgen machen muss? – BeniaminoBaggins

+1

Wie Sie vielleicht wissen, gibt es viele Arten von Regex. PCRE, GNU Grep, Perl und Python können diesen Regex verwenden; JavaScript, Java, andere nicht. Ich denke das ist eher ein regex.com Problem ... – dawg

+0

Die Gruppierung fügt nichts hinzu, oder? – chris85

Verwandte Themen