gpt4 book ai didi

python - 如何测试正则表达式匹配

转载 作者:IT老高 更新时间:2023-10-28 20:34:28 24 4
gpt4 key购买 nike

我有一个字符串。让我们称之为“测试”。我想测试这个字符串的匹配,但只使用正则表达式的 backref。

我可以这样做吗:

重新导入

for line in f.readlines():
if '<a href' in line:
if re.match('<a href="(.*)">', line) == 'test':
print 'matched!'

?当然,这似乎不起作用,但我认为我可能很接近?基本上问题是我怎样才能让 re 只返回 backref 进行比较?

最佳答案

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

注意:如果您尝试使用正则表达式解析 HTML,请阅读 RegEx match open tags except XHTML self-contained tags在继续之前。

关于python - 如何测试正则表达式匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4742662/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com