python re.X vs自动线延续

mgi*_*son 8 python regex comments annotations

Python提供了一个标志(re.Xre.VERBOSE)来允许正则表达式的注释:

a = re.compile(r"""\d +  # the integral part
                   \.    # the decimal point
                   \d *  # some fractional digits""", re.X)
Run Code Online (Sandbox Code Playgroud)

但是,使用自动字符串连接,您可以实现基本相同的事情:

a = re.compile(r'\d+' # integral part
               r'\.'  # decimal point
               r'\d*' # optional fractional digits
              )
Run Code Online (Sandbox Code Playgroud)

我不认为我真的看到后一种形式使用,但(恕我直言)它使得更容易阅读正则表达式(我不需要试图找出哪些空格已被转义,以及是什么空白正在使用忽略...等等.)我的评论由我的文本编辑器格式化为评论.是否有理由更喜欢前者而不是后者或签证?或者这真的是番茄 - 番茄问题?

Fre*_*Foo 5

前者可以放在自己的文本文件中,然后加载,无需借助literal_eval. 对于复杂的 RE(或选择多个不同的 RE),这可能是一个好处。