Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何设置电话号码的正则表达式中允许的最小和最大位数_Java_Regex_Matcher - Fatal编程技术网

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 (?

我有以下用于java应用程序的正则表达式:

[\+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。他确实知道重复。只是无法在他的情况下正确地应用它。还是有一本教程值得一读。