regex - 正则表达式从 10,000 以下的数字中删除逗号
问题描述
我需要一个正则表达式来从 10,000 以下的所有数字中删除逗号,例如 9999 但 10,000、1,000,000 等。
这适用于 9,999,正确忽略 10,000,但搞砸了 1,000,000(1000,000):
\b([0-9]),([0-9]{3})
$1$2
不幸的是,我不能简单地排除像 9999 这样的 4 位数字后面的逗号。我尝试了另一种方法,但它错过了 9,999:
\b(?<![.,])(?<d1>\d{2})(?<d2>\d{3})(?!,)\b
$1,$2
有任何想法吗?谢谢,兰迪
更新:对不起,我忘了提到这必须在.NET中工作,所以 \K 不会工作......
解决方案
这是我的两分钱:
(?:^(?=(?:,*\d,*){1,4}$)|\G(?!^))\d*\K,(?!$)
查看在线演示
我的想法是删除任何逗号,无论字符串中的哪个位置,例如:,,,8
等9,,,9
,只要最多只有 4 位数字。
推荐阅读
- julia - 如何在 Julia 中重复数组中的值?
- python - Python ElementTree 脚本在写入 CSV 输出时复制 XML 数据
- linux - 通过搜索最新文件确定备份是否运行
- javascript - 将数组的数组与其反转的元素连接起来
- wpf - (WPF) 如何在后面的代码中找到关于两个 ItemsControl 的祖先?
- node.js - 如何根据参考属性的最新ID查询猫鼬中最近的5条记录
- android - 无法反序列化通用 T 型 Moshi
- node.js - 应用部署后如何存储用户上传的文件?
- php - 在 NuSOAP 中使用 OAuth2.0 授权 SOAP 请求
- javascript - 如何仅在前一个请求完成后触发另一个请求?