如何用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']
也不正确
(?
这一部分是匹配带有“,”的情况,就不详细说了
就是不知道还有没有其他更简便的方式?
有的话,帮忙留言给我,请大家多多赐教
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
