import re
m = re.findall('\d*', 'sdf12')
print(m)
结果是 ['', '', '', '12', '']
我自己算的觉得结果应该是这样:
s —— 0次
d —— 0次
f —— 0次
1 —— 1次
2 —— 1次
12 ——2次
星号能匹配0次和多次,那1次的结果为什么没有匹配出来?还有‘12’后面为什么还有一个0次?星号到底是如何匹配的?
\d* 是匹配连续的0个或多个数字。并且是贪婪匹配,能匹配2个时就不会只匹配1个。
结果是 ['', '', '', '12', '']
因为\d* 可以匹配0个数字,也就等同匹配空字符串''
第1次的''是匹配s前面的空字符串
第2次的''是匹配d前面的空字符串
第3次的''是匹配f前面的空字符串
第4次'12'是能匹配2个时就不会只匹配1个。
第5次的''是匹配字符串结尾前的空字符串
星号匹配0到多次,你匹配的是数字,直接找不到为止。没错啊
您的问题已经有小伙伴解答了,请点击【采纳】按钮,采纳帮您提供解决思路的答案,给回答的人一些鼓励哦~~
ps:开通问答VIP,享受5次/月 有问必答服务,了解详情↓↓↓
【电脑端】戳>>> https://vip.csdn.net/askvip?utm_source=1146287632
【APP 】 戳>>> https://mall.csdn.net/item/52471?utm_source=1146287632