Python正则表达式 - 多重搜索
我想要实现的目标是:
- 使用python的mechanize库打开一个网站
- 如果内容不符合我的正则表达式,就打开另一个网站
- 我用另一个正则表达式进行搜索
这是我提取的代码:
m = re.search('<td>(?P<alt>\d+)', response.read())
...
m = re.search('<td>(?P<alt>\w+)', response.read())
print m.group('alt')
我遇到的问题是:
AttributeError: 'NoneType' object has no attribute 'group'
如果我取消注释第二个搜索,一切就正常了。我不明白为什么会这样。
这个错误让我找到了这个stackoverflow问题和这个问题,但都没有解决我的问题。
在这里我不在乎效率,所以我没有使用compile
。
1 个回答
2
假设 response
是一个像文件一样的对象,如果你第二次调用 read
,可能会返回一个空字符串,因为你之前已经把文件的内容读完了。
data = response.read()
m = re.search('<td>(?P<alt>\d\d*)', data)
m = re.search('<td>(?P<alt>\d\d*)', data)
print m.group('alt')
为什么你会多次调用 search
呢?