正则表达式,单行与文件,在Python中

时间:2019-02-08 20:09:52

标签: python regex

在简短的Python3代码中,我在myList中放置了一个“粗略”行,并成功地对其进行了“清理”,即 31.2“> 被删除了。文件中的一行(或更多行),我得到了AttributeError。 这是代码,在这里我推荐了不成功的文件操作。我的问题是,当从文件中检索句子时,为什么会出现此错误?

import re

##f = open("glo_v.txt", encoding='utf-8')
##f.seek(0)
##myList = f.read()

myList = '31.2"> I saw John two weeks ago'

a = re.match(r'\d.\.\d\"\>', myList)
b = a.group()
c = myList.replace(b, '')

print(c)

##f.close()

错误如下:

AttributeError: 'NoneType' object has no attribute 'group'

1 个答案:

答案 0 :(得分:0)

re.match方法仅匹配字符串开头的一些文本,并且看起来您的预期匹配项不存在,因此您正在尝试访问.group()中的NoneType对象(None)。

您需要替换一些文本,因此,使用

c = re.sub(r'\d+\.\d+">', '', myList)

完整摘要:

import re
with open("glo_v.txt", encoding='utf-8') as f:
    myList = f.read()
    c = re.sub(r'\d+\.\d+">', '', myList)
    print(c)