我想写一个正则表达式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
如果输出相同,r1
and r2
也相同。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)