Ответ 1
re.match
соответствует только начало строки.
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, чтобы открывать теги, за исключением тегов XHTML, которые находятся в автономном режиме, прежде чем идти дальше.