java - 正则表达式匹配金额范围

标签 java regex

我需要一个正则表达式来匹配 10 到 10000(含)范围内的金额 到目前为止,我想出了这样的东西:

^(?:[1-9]\\d{0,3}?)$

但是它有两个问题:

  • 它匹配 10 以内的任何内容,例如 5
  • 不包括 10000

我知道使用正则表达式来匹配范围并不是最好的主意,但它必须这样做。

最佳答案

你可以使用

^([1-9][0-9]{1,3}|10000)$

请参阅regex demo

图案详细信息:

  • ^ - 字符串的开头
  • ([1-9][0-9]{1,3}|10000) - 有 2 个选项的交替:
    • [1-9][0-9]{1,3} - 1 到 9 之间的数字,后跟 1 到 3 个任意数字({1,3} 对于排除匹配的 5 以及 10 之前的所有数字非常重要),并且它匹配从 10 的整数9999,没有前导零。
    • | - 或
    • 10000 - 10000 数字
  • $ - 字符串结尾

关于java - 正则表达式匹配金额范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37293383/

相关文章:

java - 是否有可能在 Web 前端显示 IMS 屏幕?

regex - minizinc pentominoes 常规约束示例如何工作?

javascript - 使用正则表达式来分割数组中的值,模式只起作用一半的时间

java - 在 FreeBSD 共享服务器上安装 GlassFish

java - Play Framework : Manually open JPA context for Spring RabbitMQ listener

java - 如何检查房间数据库是否为空

javascript - 正则表达式以@符号开头

java - 方法 userAccounts() 未定义类型 new View.OnClickListener(){}

r - 将 stringr str_detect 管道传输到 str_extract 时出现问题 - extract 仅从第一行提取文本 : argument is not an atomic vector; coercing

regex - 通过CSV循环写入错误日志