可以吗重新查找()实例与原始模式不匹配?

2024-04-24 11:30:40 发布

您现在位置:Python中文网/ 问答频道 /正文

a.是否存在以下代码会导致 断言错误?你知道吗

b.如果是这样,我如何防止?你知道吗

def finditer_test(pattern, string, flags=0):
    for match_object in re.finditer(pattern, string, flags):
        assert re.match(pattern, match_object.group(0), flags)

Tags: 代码intestreforstringobjectdef
2条回答

是的,这是可能的-例如,如果正则表达式使用的lookaround assertions超出了匹配本身的边缘:

(?<= )bar(?= )

将匹配bar中的"foo bar baz",但不匹配"bar"(即group(0))。你知道吗

是的,它可能会失败,例如当模式包含前瞻断言时。你知道吗

检查finditer_test(r'a(?=b)', 'abc')

相关问题 更多 >