大众信息网

python re.search问题

关注:79  答案:3  手机版
解决时间 2021-02-26 08:18
for x in file_format.keys():

reg = file_format[x]['regstr']

p = re.compile(reg, re.S)

rs = p.findall(data)

for line in data:

for i in range(len(rs)):

if (re.search(rs[i],line)):

strs = str(re.sub(rs[i], 'newValue', line))

总是提示 if (re.search(rs[i],line)): 这里出错,return _compile(pattern, flags).search(string),是参数格式问题么?请问怎么解决?
最佳答案
我也遇到过类似的问题。检查一下语句中:“if (re.search(rs[i],line))” “line”类型,如果不是string 或buffer的话就会报错。比如说,如果line是tuple的话,应该就会报错。试试把 if (re.search(rs[i],line)) 中的line改为str(line) 或 unicode(line)
PS:具体的,情况我也还没有完全找出来,如果你有找出问题的关键所在,多多交流!
全部回答
<_sre.sre_match object at 0x01fed5d0> 返回的是一个匹配对象 ,调用对象的group方法获得字符串 >>> import re a = re.search('\d+','231422sadf') >>> a.group(0) '231422'
你的正则表达式写错了,就是说file_format[x]['regstr']这个值有字符编码问题。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!