我正在尝试使用正则表达式匹配一个短语,只要该短语中的任何单词都没有出现在 html 标记中。
对于此示例,我使用以下网址:
url = "http://www.sidley.com/people/results.aspx?lastname=B"
我正在使用的正则表达式是:
regexp = "Babb(?!([^<]+)?>).+?Jonathan(?!([^<]+)?>).+?C(?!([^<]+)?>)"
page = urllib2.urlopen(url).read()
re.findall(regexp, page, re.DOTALL)
使用该正则表达式,我得到以下输出:
[('', '', '')]
当我将正则表达式更改为(*注意外部括号)时:
regexp = "(Babb(?!([^<]+)?>).+?Jonathan(?!([^<]+)?>).+?C(?!([^<]+)?>))"
page = urllib2.urlopen(url).read()
re.findall(regexp, page, re.DOTALL)
我得到:
[('Babb, Jonathan C', '', '', '')]
我很困惑为什么会这样。
1)为什么我会得到这些空字符串作为匹配项?2)为什么对于第一个正则表达式,我没有得到实际匹配?
最后,
我该如何解决?
在此先感谢您的帮助。