我正在尝试匹配/debate/days/views/(here should be 3 digits)
。
/debate/days/views/980
或/debate/days/views/888
将匹配,但/debate/days/views/foo
不匹配
这是我试过的正则表达式,但不起作用:
re.search(r'/debate/days/views/\d\d\d', href).group(0)
这是错误消息:
AttributeError:'NoneType'对象没有属性'group'
有谁能告诉我如何解决它?
答案 0 :(得分:3)
当RE不匹配时,re.search
会返回None
,而不是匹配对象,因此您无法使用.group()
。你必须首先测试它是否成功:
found = re.search(r'/debate/days/views/\d\d\d', href)
if found:
print found.group(0)
答案 1 :(得分:0)
您的表达式一度与href
不匹配,并返回None
,当然没有.group
方法。 Just use try ... except
to handle this case:
try:
re.search(r'/debate/days/views/\d\d\d', href).group(0)
except ValueError:
print "No match found for '{}'".format(href)