regex - 小数点后最多 2 位的正则表达式
问题描述
我想编写一个正则表达式,它必须只取小数点后 0、1 或 2 位数字的有效数值。
所以我试着这样做:"^\\d+(\\.\\d){0,2}$"
但即使对于小数点后 3 位的数字,它也会返回 true。
有什么想法有什么问题吗?
解决方案
您的正则表达式^\d+(\.\d){0,2}$
匹配1
,或者1.0
还1.0.0
因为您为组指定了 0-2 次的量词,(\.\d){0,2}
并且不匹配点后的 3 位数字。
要匹配可以后跟点的数字和点后的 1 或 2 位数字,您可以使用:
这里第一个数字之后的组是可选(?:\.\d{1,2})?
的,并且为 digit 指定量词\d{1,2}
。
推荐阅读
- docusignapi - 访问 create_template_view api 时出现 INVALID_REQUEST_BODY 错误
- routes - Heremaps 计算路由 API 上的错误 414
- php - 每个类别结帐后的 Wocomerce 自定义重定向
- sas - Proc 扩展不规则时间序列
- javascript - 如何从 API 响应中提取数组
- testing - 在 Visual Studio 中打开的赛普拉斯测试运行程序运行旧版本的 spec.js 文件
- python - 使用 sha512 修复文件哈希
- flexbox - 试图创建一个弹性盒子容器,但它不会创建盒子并显示文本
- reactjs - 我需要带有管理面板的 React 动态图库的想法
- python - Python 记录器没有从根记录器继承级别