我有这个功能:
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;
有人可以帮助我吗?
答案 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循环之外编译你的正则表达式,因为它更有效。