import re var='iloveyou520abc123' reg=re.compile('\d{3}') res=reg.findall(string=var) # (string=var)关键字字符传参 #print(res) lines=[ 'iloveyou521abc' 'iloveyou522abc' 'iloveyou523abc' ] for i in lines: reg='\d{3}' re.search(i).group() print(res)
For循环内,定义了reg,但是题主并没有使用,而是直接用的是re.search——这个用法显然和前面先将模式串compile的用法完全不一个路数。另外,列表lines的三个字符串元素中间是否漏掉了逗号呢?建议题主以后要严谨一点。这是修改后的代码,使用一个编译后的模式串,统一了正则匹配和查找的用法。
import re
var = 'iloveyou520abc123'
reg = re.compile('\d{3}')
res = reg.findall(string=var) # (string=var)关键字字符传参
print(res)
lines=[
'iloveyou521abc',
'iloveyou522abc',
'iloveyou523abc'
]
for i in lines:
#reg='\d{3}'
res = reg.search(i).group()
print(res)
for i in lines:
i返回的是字符串,不是索引。
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632
非常感谢您使用有问必答服务,为了后续更快速的帮您解决问题,现诚邀您参与有问必答体验反馈。您的建议将会运用到我们的产品优化中,希望能得到您的支持与协助!
速戳参与调研>>>https://t.csdnimg.cn/Kf0y