这是《python编程快速上手--让繁琐工作自动化》(Al Sweigart著 王海鹏翻译。中国工信出版社 人民邮电出版社)里第7章模式匹配与正则表达式7.17习题,第20题的课后题
多亏了csdn博主的文章,谢谢
https://blog.youkuaiyun.com/daaa2019/article/details/102963975
下面的代码是上面代码的简版,运行成功
import re
text="""
12
12,333
13,444,555
14,66,777
1567
"""
threeNumRegex=re.compile(r"(?<![\d|\,])(?:\d{1,3})(?:,\d{3})*(?=\s)")
result=threeNumRegex.findall(text)
print(result)
运行结果:['12','12,333','13,444,555']
遗憾的是,还有俩问题没解决
1、为啥要加 (?<![\d|\,]) 否定负向零宽断言
2、为啥要加 (?=\s) 肯定正向零宽断言
import re
text="""
12
12,333
13,444,555
14,66,777
1567
"""
# 这个是来自c