python中的多行正则表达式

时间:2013-11-13 07:11:35

标签: python regex

我想让我的代码更容易维护,所以我遇到了这个问题

re.compile(r'foo' # some comments
            '|bar'
)

与以下相同:

re.compile(r'foo|bar')#blabla

这一个:

re.compile(r"""foo #some comments
               bar""")

IdeaJ建议这样的事情:

re.compile(r'foo'
           r'bar')

我这里有成千上万的'foobar'。

我知道第三个可能会产生一些不需要的\ w 但其他人呢?

我想要的只是一个正则表达式匹配foo OR bar

2 个答案:

答案 0 :(得分:4)

您可以通过指定re.VERBOSE标记将注释放在正则表达式中。

re.compile(r'''foo  # some comments
               |bar # some more comments
            ''', re.VERBOSE)

标志的简写为re.Xdocs

答案 1 :(得分:1)

在Python文档http://docs.python.org/2/reference/lexical_analysis.html#string-literal-concatenation

中找到了这个
 re.compile("[A-Za-z_]"       # letter or underscore
            "[A-Za-z0-9_]*"   # letter, digit or underscore
            )