regex - 可选的千位分隔符处理不完整的字符串
问题描述
我需要处理可能具有可选千位分隔符的数字,例如 1234567 和 1,234,567 我天真地假设我可以用
(\d{1,3}([,]?(\d{3}))*)
This 来实现,但是,仅匹配 123456(不是 7)和 1,234,567(正确)但是,如果我指定显式匹配数(在这种情况下为 2)
(\d{1,3}([,]?(\d{3})){2})
或边界(例如 \b)
(\d{1,3}([,]?(\d{3}))*)\b
执行完整匹配。为什么“贪婪” * 量词在第一个正则表达式的第一个匹配之后停止?
解决方案
推荐阅读
- audio - 与 `audio` 元素相比,howler.js 为基本音频播放器带来了什么好处?
- python - 如何将models.py从一个应用程序导入另一个应用程序中的另一个models.py?
- c++ - 打印与字符串相邻的对
- ios - SwiftUI:LazyVStack 不更新
- python-3.x - Altair 将数据保存到仪表板时出错
- graphql - 盖茨比 GraphQL 问题
- c++ - 从文本文件 C++ 填充 4x4 2d 数组
- java - foobar.withgoogle.com 任务请传递编码消息 java
- javascript - 为什么这不起作用?Turn 的值在增加,但它仍然触发相同的事件?
- r - 如何使用 R 中另一个数据框中包含的值对数据框的列进行计算?