我有这个正则表达式
[0-9]+(,[0-9][0-9]?)?
它匹配 345563,24 但如何将左侧部分限制为 8 个字符?
88888888,00 - true 因为 8 个字符
999999999,00 - false 因为 9 个字符
我有这个正则表达式
[0-9]+(,[0-9][0-9]?)?
它匹配 345563,24 但如何将左侧部分限制为 8 个字符?
88888888,00 - true 因为 8 个字符
999999999,00 - false 因为 9 个字符
用这个:
[0-9]{0,8}(,[0-9][0-9]?)?
{m,n}
表示前一个字符/组的最小和最大出现次数。您可以通过将表达式的一侧留空来指示最小值或最大值。所以上面的表达式允许一个数字出现 0 到 8 次。如果您希望在表达式开头出现 1 到 8 个数字,请使用以下命令:
[0-9]{1,8}(,[0-9][0-9]?)?
我会做 :
^[1-9][0-9]{,7}(,[0-9][0-9]?)?$
从@Kent和@user1775603的答案中借用元素,我会尝试以下方法:
^([1-9][0-9]{0,7}|0)(,[0-9][0-9])?$
这将匹配:
0,xx
在哪里x
)请注意,小数分隔符,除非您注意不这样做,否则通常取决于语言环境。究竟如何解决这个问题取决于您使用的语言和/或框架,但这是需要注意的。
我会推荐\b
而不是^
和$
:
\b([1-9][0-9]{0,7}|0)(,[0-9][0-9]?)?\b
这样输入就不需要单独输入,也可以在大文本的中间找到。