search()缺少1个必需的位置参数:“string”。要怎么解决

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