数字正则表达式生成器(整数、小数、千位分隔、范围)
生成整数、小数、1,234.56 或 1.234,56 分隔、科学计数法、百分数以及 1–255 这类数值范围的正则表达式,并立即测试。
这里使用 [0-9] 而不是 \d,以保证在所有语言中都只匹配 ASCII 数字。
正则表达式比较的是文本而不是数值,所以要把范围拆成若干段:1–255 就是 [1-9]、[1-9][0-9]、1[0-9]{2}、2[0-4][0-9] 和 25[0-5]。
| 行 | 值 | 结果 | 数字或原因 |
|---|---|---|---|
| 1 | 0 | 不匹配 | 超出范围:1–255 |
| 2 | 1 | 匹配 | 1 |
| 3 | 99 | 匹配 | 99 |
| 4 | 100 | 匹配 | 100 |
| 5 | 199 | 匹配 | 199 |
| 6 | 255 | 匹配 | 255 |
| 7 | 256 | 不匹配 | 超出范围:1–255 |
| 8 | 007 | 不匹配 | 前导零 |
| 9 | -5 | 不匹配 | 超出范围:1–255 |
| 部分 | 规则 |
|---|---|
| 范围 | 1 到 255 拆成 5 段(每段中的数字位可独立变化) |
数字看起来简单,但一个好用的正则表达式要考虑很多细节:是否允许 007,数值能否以“.”开头,千位分隔符是逗号(1,234.56)、点号(1.234,56)还是空格,以及怎样只匹配 1 到 255 的数字。这个生成器根据这些选择生成表达式(包括经典的“数值范围转正则”),输出 JavaScript、PHP、Python、Java 和 C# 的代码,并可用你自己的值测试,或从文本中提取数字。
使用方法
- 选择数字类型,或选择“整数范围”并输入起止值。
- 设置符号、小数位数,以及是否允许前导零或“.5”。
- 选择语言,以及校验还是查找。
- 用你的值测试,然后复制正则表达式。
计算公式
整数:0|[1-9][0-9]* · 小数:整数(\.[0-9]+)? · 千位分隔:[1-9][0-9]{0,2}(,[0-9]{3})+ · 范围:把 [最小, 最大] 按 9…9 和 …0 的边界拆分
对于范围,会在数位进位的地方(9 → 10、99 → 100,以及上限的十位和百位)切开,使每一段都可以写成固定数字加字符类;负数范围会多出一个负号分支。千位分隔表达式要求完整的三位一组(印度式的拉克/克罗尔为两位一组),同时也接受不带分隔符的纯数字。在“查找”模式中,匹配结果不能紧挨着其他数字,所以 1.2.3 和较长数字的一部分会被跳过。
示例
1 到 255 的范围,表达式为 ^(?:[1-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$。在示例列表中,1、99、100、199 和 255 匹配(5 个);0 和 256 超出范围,007 有前导零,−5 是负数。选择“逗号千位分隔”时,1,234,567.89 匹配,而 1,23,456 不匹配,因为第一组之后的每一组都必须是三位。
常见问题
为什么不直接用 \d+ 匹配再比较数值?
在代码里这样做往往更好。正则适用于只接受表达式的场合:表单校验属性、配置文件、搜索工具和日志过滤器。
范围表达式适用于小数吗?
不适用,它针对整数。对于小数的上下限,请先用小数表达式匹配数字,再在代码中比较数值。
应该用哪种分隔写法?
英语国家、韩国、日本和中国写作 1,234.56;欧洲大陆大部分地区和拉丁美洲写作 1.234,56;法语和国际单位制写法使用空格;印度则按 12,34,567.89 分组。
资料来源
最后更新:
包含这些输入的页面地址: https://kakao.mobile/zh/tools/number-regex-tool/
引用此工具
kakaoCalc. (2026, November 8). 数字正则表达式生成器(整数、小数、千位分隔、范围). https://kakao.mobile/zh/tools/number-regex-tool/
“数字正则表达式生成器(整数、小数、千位分隔、范围).” kakaoCalc, 8 Nov. 2026, kakao.mobile/zh/tools/number-regex-tool/.