re.match
只匹配字符串的beginning。
def url_match(line, url):
match = re.match(r'<a href="(?P<url>[^"]*?)"', line)
return match and match.groupdict()['url'] == url:
用法示例:
>>> url_match('<a href="test">', 'test')
True
>>> url_match('<a href="test">', 'te')
False
>>> url_match('this is a <a href="test">', 'test')
False
如果這個模式能在該行的任何地方發生,使用re.search
。
def url_search(line, url):
match = re.search(r'<a href="(?P<url>[^"]*?)"', line)
return match and match.groupdict()['url'] == url:
用法示例:
>>> url_search('<a href="test">', 'test')
True
>>> url_search('<a href="test">', 'te')
False
>>> url_search('this is a <a href="test">', 'test')
True
N.B:如果你想使用正則表達式解析HTML,纔去任何進一步的閱讀RegEx match open tags except XHTML self-contained tags。
我建議[Rubular](http://rubular.com/)開發正則表達式 - 這是一個巨大的節省時間。這裏有另一個問題,我幫助了一個類似模式的人:http://stackoverflow.com/questions/4716787/problem-with-ruby-regular-expression – 2011-01-20 01:37:40