验证逗号分隔数字最多1,000但不是0值

时间:2015-09-01 18:21:20

标签: java regex

我正在寻找一个RegEx来验证一个从1到1,000的数字,逗号只包含在1000和任何其他输入中,如0,2000,100.9,所以它应该抛出错误。

我尝试使用:

Regex = "[0-9]+(,[0-9]+)"

100200

失败了

1 个答案:

答案 0 :(得分:3)

为了匹配整个,整数从1到1,000,你可以使用

^(?:1,000|[1-9][0-9]{0,2})$

或者,要匹配较大字符串(带有字边界\b)内的单独数字:

\b(?:1,000|[1-9][0-9]{0,2})\b

如果数字可能出现在字母,其他数字或_

之间
(?:1,000|[1-9][0-9]{0,2})

请参阅demo

锚点确保数字等于整个输入字符串。

正则表达式匹配......

  • ^ - 字符串开头
  • (?:1,000|[1-9][0-9]{0,2}) - 2个替代方案:1,000[1-9][0-9]{0,2}
    • [1-9] - 1到9之间的数字
    • [0-9]{0,2} - 从0到9的0或2位数字
  • $ - 字符串结尾