' NoneType'对象没有属性' group'当我添加一个组

时间:2016-10-28 17:40:15

标签: python regex

我有这个功能:

def read_urls(filename):
    urls = open(filename, 'r').read()
    links = []
    for line in urls:
        url = (re.search(r"(?<=GET ).+(?= HTTP)", line).group(0))
        links.append("http://code.google.com"+url)
    links.sort()
    return links

但是当我启动程序时,我收到了这个错误:

  

&#39; NoneType&#39;对象没有属性&#39; group&#39;

有人可以帮助我吗?

1 个答案:

答案 0 :(得分:2)

这意味着您定义的正则表达式与您输入的字符串不匹配,这将创建一个None对象并从None对象中获取一个组将引发您遇到的错误。为了防止这种情况,请使用以下代码:

match = re.search(r"(?<=GET ).+(?= HTTP)", line)
if match is not None:
    url = match.group(1)
else:
    #Some code you want if the regex does not match

编辑:我还建议在for循环之外编译你的正则表达式,因为它更有效。