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},现在它工作得很好。非常感谢。