我有一个字符串.我们称之为'测试'.我想测试一个匹配这个字符串,但只使用正则表达式的backref.
我可以这样做:
进口重新
for line in f.readlines():
if '<a href' in line:
if re.match('<a href="(.*)">', line) == 'test':
print 'matched!'
Run Code Online (Sandbox Code Playgroud)
?这当然似乎不起作用,但我认为我可能会接近?基本上问题是我怎样才能重新只返回backref进行比较?
mou*_*uad 23
def url_match(line, url):
match = re.match(r'<a href="(?P<url>[^"]*?)"', line)
return match and match.groupdict()['url'] == url:
Run Code Online (Sandbox Code Playgroud)
示例用法:
>>> url_match('<a href="test">', 'test')
True
>>> url_match('<a href="test">', 'te')
False
>>> url_match('this is a <a href="test">', 'test')
False
Run Code Online (Sandbox Code Playgroud)
如果模式可能出现在行中的任何位置,请使用re.search.
def url_search(line, url):
match = re.search(r'<a href="(?P<url>[^"]*?)"', line)
return match and match.groupdict()['url'] == url:
Run Code Online (Sandbox Code Playgroud)
示例用法:
>>> url_search('<a href="test">', 'test')
True
>>> url_search('<a href="test">', 'te')
False
>>> url_search('this is a <a href="test">', 'test')
True
Run Code Online (Sandbox Code Playgroud)
注意:如果您尝试使用正则表达式解析HTML,请在继续之前阅读除XHTML自包含标记之外的RegEx匹配开放标记.