python - 需要正则表达式帮助来匹配数字

标签 python regex

我对正则表达式绝对是菜鸟,需要帮助匹配这种格式的数字:

1,234,567 

123,456

包括逗号!所以我想匹配例如:

980,232  905,903  889,614  881,145  2,343,435  3,435,123

额外说明:我正在使用 python re 模块

最佳答案

\d{1,3}(?:,\d{3})* 匹配正确放置的逗号( 4,43,424 不匹配)

https://regex101.com/r/kQ6fC9/3

第一个逗号之前可以有 1-3 位数字,然后 (,xyz) 可以重复任意次数, - ,123,456,123,456,789 也可以不重复 - 只是数字 13。

这对于可以用逗号分隔以提高可读性的整个(整数)数字非常有效。如果您还需要添加小数,则意味着最后一个逗号后面的数字没有限制。 (?<=^|\s)\d{1,3}(?:,\d{3})*(?:,\d+)?(?=\s|$) 应该适用于任何数字,包括小数,同时避免错误的数字,https://regex101.com/r/kQ6fC9/4

关于python - 需要正则表达式帮助来匹配数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31321640/

相关文章:

python - 在 Python 2.7 中,如何将用户输入限制为特定整数并跟踪异常?

python - ply lexmatch 正则表达式与通常的 re 具有不同的组

regex - 需要从批处理中的 epub 或文本文件中提取一组 4 位数字

正则表达式:将 <tag> 与随机顺序属性匹配

python - 将 x 替换为 y,如果没有 x,则附加 y

python - 检查列表中的任何时间是否在两个时间戳之间

python - 我的程序运行良好,除了一件事 :

python - 如何使用 h5py 读取只有数据集(没有组)的 HDF5 文件?

python - 如何自动保存和裁剪生成的图像?

python - 提取井号之间的数据