我想在re.VERBOSE
模式下编写正则表达式,但是我不确定我会在没有错误的情况下添加冗长的部分。
我记得,从理论上讲,可以通过生成其自动机并尝试找到图形射击的两个等级(至少没有反应)的等效性(至少没有反应)。但是我看不到比较Regexes的实例方法。
是否有一种方法可以生成正则拨号的自动机,或者直接与标准库进行比较?
(我已经决定解决我的问题的一种不同的解决方案,但这对我来说仍然很感兴趣。)
您可以使用未记录的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
和r2
也相同。