tl; dr: Wie kann ich eine Zählereinschränkung für ein bestimmtes Token in einer Regex festlegen? Einschränken von Ziffern in einer Regex-Übereinstimmung
(regex-exp){constraint:max 10 only digits}
Ich habe versucht, eine Telefonnummer in einem Textblock zu finden. Android-Plattformen Patterns
Klasse bietet eine angemessene Abdeckung. Aber das Hauptproblem hat es
- Es verfügt nicht über eine Mindestlänge
- Es verfügt nicht über eine maximale Länge
Also eigentlich passt es sogar 1234
und auch wenn es eine Zeichenfolge wie my phone numbers are +19447223311 872881122
, es entspricht beiden Zahlen als eine einzige Zahl. Wenn wir eine Einschränkung hinzufügen können, dass das Muster Ziffern {7,12} haben sollte, wird es für beide lösen, denke ich. So viel ich versuchte, konnte es nicht funktionieren lassen. Hier ist die Regex für das Muster.
public static final Pattern PHONE
= Pattern.compile( // sdd = space, dot, or dash
"(\\+[0-9]+[\\- \\.]*)?" // +<digits><sdd>*
+ "(\\([0-9]+\\)[\\- \\.]*)?" // (<digits>)<sdd>*
+ "([0-9][0-9\\- \\.]+[0-9])"); // <digit><digit|sdd>+<digit>
Mögliche Duplikat [Java Reguläre Ausdrücke zu validieren Telefonnummern] (https://stackoverflow.com/ Fragen/42104546/java-regulary-expressions-to-validate-phone-Nummern) –
Telefonnummern haben nicht wirklich eine maximale Länge. Einige Unternehmen verwenden besonders zusätzliche Ziffern, wenn sie etwas buchstabieren, da die zusätzlichen Zahlen ignoriert werden. –
@GabeSechan Vielleicht ja. Aber in meinem Fall möchte ich wissen, wie man eine Umrechnung auf eine Regex setzt. : - \ – Codevalley