如何用python写一个正则表达式,匹配每 3 位就有一个逗号的数字(千分号)?

这个是《Python编程快速上手 让繁琐工作自动化》正则表达式这一章的习题
下午摸索了半天,本身对正则不是特别了解,之前接触过一些,近几天学习python,又开始倒腾了
下面是我自己下午写的,请大家指导下

import re
threeNumRegex = re.compile(r'''(?:(?

为什么是

(?:(?

其中

(?

是用来匹配只有1-3位数的情况,前面不能是数字或者",",如果没有前面的否定负向零宽断言

(?

就会出现下面这样的匹配情况

['12', '333', '12', '444', '234', '222', '112', '222']

得不到正确的结果
另外,还需要加一个肯定正向零宽断言

(?=\s)

如果不加,结果会是这样

['12', '12', '12', '444', '234', '873', '837', '221']

也不正确

(?

这一部分是匹配带有“,”的情况,就不详细说了

就是不知道还有没有其他更简便的方式?
有的话,帮忙留言给我,请大家多多赐教


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章