gpt4 book ai didi

python - 检查两个 Python 正则表达式模式是否等效

转载 作者:太空狗 更新时间:2023-10-29 21:03:30 25 4
gpt4 key购买 nike

我想在 re.VERBOSE 中写一个正则表达式模式,但我不确定我会在没有错误的情况下添加冗长的部分。

我记得,理论上,两个正则表达式的等价性(至少没有反向引用)可以通过生成它们的自动机并尝试找到图双射来找到。但是我看不到用于比较正则表达式的实例方法。

有没有办法生成正则表达式的自动机或直接比较它们,最好是与标准库进行比较?

(我已经为我的问题决定了一个不同的解决方案,但这仍然是我感兴趣的。)

最佳答案

您可以使用未记录的 re.DEBUG 功能:

>>> r1 = re.compile("foo[bar]baz", re.DEBUG)
literal 102
literal 111
literal 111
in
literal 98
literal 97
literal 114
literal 98
literal 97
literal 122
>>> r2 = re.compile("""foo # foo!
... [bar] # b or a or r!
... baz # baz!""", re.VERBOSE|re.DEBUG)
literal 102
literal 111
literal 111
in
literal 98
literal 97
literal 114
literal 98
literal 97
literal 122

如果输出相同,则 r1r2 也相同。

关于python - 检查两个 Python 正则表达式模式是否等效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21398251/

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