我正在尝试使用正则表达式匹配短语,只要该短语中没有任何单词出现在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)
使用该正则表达式,我得到以下输出:
[('', '', '')]
当我将正则表达式更改为(*注意外部的parens)时:
regexp = "(Babb(?!([^).+?Jonathan(?!([^).+?C(?!([^))"
page = urllib2.urlopen(url).read()
re.findall(regexp, page, re.DOTALL)
我明白了:
[('Babb, Jonathan C', '', '', '')]
我很困惑为什么会这样。
1)为什么我将这些空字符串作为匹配?
2)为什么第一个正则表达式,我没有得到实际的匹配?
最后,
我该如何解决这个问题?
提前感谢您的帮助。