Java 如何设置电话号码的正则表达式中允许的最小和最大位数
我有以下用于java应用程序的正则表达式:Java 如何设置电话号码的正则表达式中允许的最小和最大位数,java,regex,matcher,Java,Regex,Matcher,我有以下用于java应用程序的正则表达式: [\+0-9]+([\s0-9]+)? 如何将电话号码的上述表达限制为最少4位,最多7位?我想这就像是在表达式中添加这个{4,7},但它不起作用 有什么建议吗 基本上,我的电话号码可以以+符号开头,后跟数字(+004…),也可以仅以数字开头(004…),也可以在任何数字之间包含空格(0 0 4…)。您可以尝试以下正则表达式: [+]?(?:[0-9]\s*){4,7} 说明: [+]? // Optional + sign (?
[\+0-9]+([\s0-9]+)?
如何将电话号码的上述表达限制为最少4位,最多7位?我想这就像是在表达式中添加这个{4,7},但它不起作用
有什么建议吗
基本上,我的电话号码可以以+符号开头,后跟数字(+004…),也可以仅以数字开头(004…),也可以在任何数字之间包含空格(0 0 4…)。您可以尝试以下正则表达式:
[+]?(?:[0-9]\s*){4,7}
说明:
[+]? // Optional + sign
(?:[0-9]\s*) // A single digit followed by 0 or more whitespaces
{4,7} // 4 to 7 repetition of previous pattern
样本测试:
String regex = "[+]?(?:[0-9]\\s*){4,7}";
System.out.println("0045234".matches(regex)); // true
System.out.println("+004 5234".matches(regex)); // true
System.out.println("+00 452 34".matches(regex)); // true
System.out.println("0 0 4 5 2 3 4".matches(regex)); // true
System.out.println("004523434534".matches(regex)); // false
System.out.println("004".matches(regex)); // false
您可以尝试以下正则表达式:
[+]?(?:[0-9]\s*){4,7}
说明:
[+]? // Optional + sign
(?:[0-9]\s*) // A single digit followed by 0 or more whitespaces
{4,7} // 4 to 7 repetition of previous pattern
样本测试:
String regex = "[+]?(?:[0-9]\\s*){4,7}";
System.out.println("0045234".matches(regex)); // true
System.out.println("+004 5234".matches(regex)); // true
System.out.println("+00 452 34".matches(regex)); // true
System.out.println("0 0 4 5 2 3 4".matches(regex)); // true
System.out.println("004523434534".matches(regex)); // false
System.out.println("004".matches(regex)); // false
“\\+?(\\d?{3,6}\\d”
应该匹配可选+符号,后跟4-7个数字和数字之间的可选空格。“\\+?(\\d?{3,6}\\d”
应该匹配可选+符号,后跟4-7个数字和数字之间的可选空格。与上述结构类似,但是使用::?脱下
(不确定为什么会在那里?)
与上面的结构类似,但有:
:?脱下
(不确定为什么会在那里?)
花10万英镑去读一读。@HamZa。他确实知道重复。只是无法在他的情况下正确地应用它。还是有一本教程值得一读。花1000万美元去读。@HamZa。他确实知道重复。只是无法在他的情况下正确地应用它。还是有一本教程值得一读。