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
Regex nnn或nnn.nnn的正则表达式_Regex - Fatal编程技术网

Regex nnn或nnn.nnn的正则表达式

Regex nnn或nnn.nnn的正则表达式,regex,Regex,我有这个正则表达式 "^([0-9]{1,3})+(\.[0-9]{3})?$" 它应该只允许数字的n、nn、nnn和nnn.nnn格式 在我的例子中,它也在传递,这种格式nnnnn.nnn第一个括号后的+允许任意次数的重复。如果您的意思是{1,3},那么您根本不需要+。您应该删除+和多余的括号: ^[0-9]{1,3}(\.[0-9]{3})?$ ^^^^^^^^^^ 您的模式匹配字符串的开头(^),1个或多个1到3位数字的出现(带有([0-9]{1,3})+)和一个可选的点序列,该点

我有这个正则表达式

"^([0-9]{1,3})+(\.[0-9]{3})?$" 
它应该只允许数字的n、nn、nnn和nnn.nnn格式


在我的例子中,它也在传递,这种格式nnnnn.nnn

第一个括号后的
+
允许任意次数的重复。如果您的意思是
{1,3}
,那么您根本不需要
+

您应该删除
+
和多余的括号:

^[0-9]{1,3}(\.[0-9]{3})?$
 ^^^^^^^^^^
您的模式匹配字符串的开头(
^
),1个或多个1到3位数字的出现(带有
([0-9]{1,3})+
)和一个可选的点序列,该点后跟字符串结尾的3位数字(
(\.[0-9]{3})

[0-9]{1,3}
将只匹配1到3位数字


<>

之所以发生这种情况是因为<代码> +>代码>您在正则表达式的中间。
这意味着“前面的一个或多个元素”,因此它实际上意味着
1更多([0-9]{1,3}),并且它必须以([0-9]{3})结尾。$

您需要从表达式中删除1,如:
^([0-9]{3})+(\.[0-9]{3})$

引号显然不是正则表达式的一部分;如果你确实把它们放在了不应该放的地方,那就是问题的一部分。中央的
+
一定是原因。”^([0-9]{1,3})(\[0-9]{3})?$“谢谢你的快速重播。这就是问题所在,我也从这个([0-9]{1,3})中删除了括号,使它变成这样[0-9]{1,3},现在它工作得很好。非常感谢。