Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.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
RegEx在手机号码的第三列中没有空格_Regex_Numbers - Fatal编程技术网

RegEx在手机号码的第三列中没有空格

RegEx在手机号码的第三列中没有空格,regex,numbers,Regex,Numbers,我为手机号码想出了以下正则表达式: ^\+([0-9]{1,} )+([0-9]{2,} )+[0-9]+ 有效数字示例: +385 552 8221520 什么是相应的正则表达式,因此如果在第三个捕获组中发现任何空格,我不会得到匹配: +385 552 82215 20(现在进行匹配,但不是很好!) 您的模式包含量化的分组。^+([0-9]{1,})+([0-9]{2,})+[0-9]+模式匹配一个字符串,该字符串以+开头,然后包含1个或多个重复的1+位数加空格,然后是1+重复的2+位数加空

我为手机号码想出了以下正则表达式:

^\+([0-9]{1,} )+([0-9]{2,} )+[0-9]+
有效数字示例:

+385 552 8221520

什么是相应的正则表达式,因此如果在第三个捕获组中发现任何空格,我不会得到匹配:

+385 552 82215 20(现在进行匹配,但不是很好!)


您的模式包含量化的分组。
^+([0-9]{1,})+([0-9]{2,})+[0-9]+
模式匹配一个字符串,该字符串以
+
开头,然后包含1个或多个重复的1+位数加空格,然后是1+重复的2+位数加空格,然后是1+位数。因此,它匹配许多空格分隔的数字块。此外,它不是用
$
锚定在字符串的末尾,如果与允许部分匹配的regex方法一起使用,则可能会匹配结尾包含垃圾的字符串

要将数字块限制为仅三个空格分隔的数字块,您可以使用以下任一选项:

  • ^\+[0-9]++[0-9]{2,}+[0-9]+$
    -如果数字组之间可以有1个或多个空格
  • ^\+[0-9]+?[0-9]{2,}?[0-9]+$
    -如果数字组之间可以有1或0个空格
  • ^\+[0-9]+*[0-9]{2,}*[0-9]+$
    -如果数字组之间可以有0个或更多空格

请注意,
$
添加在每个模式的末尾。另外,请参见。

您可能需要。如果空格是可选的,请将“+”替换为“*”。您好,谢谢您的快速评论!Wiktor的那个似乎适合我的需要。你们中的那个anubhava不起作用。