在python中使用re.verbose时使用三个开-关引号的原因

在python中使用re.verbose时使用三个开-关引号的原因,python,Python,我只是好奇,为什么我看到的大多数示例都使用re.verbose,在使用正则表达式时,使用“” 我发现的一个例子如下所示 address = re.compile( ''' #THIS [\w\d.+-]+ # username @ ([\w\d.]+\.)+ # domain name prefix (com|org|edu) # we should support more top-level domai

我只是好奇,为什么我看到的大多数示例都使用re.verbose,在使用正则表达式时,使用“”

我发现的一个例子如下所示

address = re.compile(
    '''              #THIS
    [\w\d.+-]+       # username
    @
    ([\w\d.]+\.)+    # domain name prefix
    (com|org|edu)    # we should support more top-level domains
    ''',             #AND  THIS  
    re.UNICODE | re.VERBOSE)
使用
''
允许字符串跨越多行,因此它们可以分解re的每个部分,而不是一行

这样做是为了代码可读性,而不是功能性


有关跨多行的字符串的详细信息,请参见。

注意,一般情况下,您希望使用“原始”字符串,例如以
r''开头。
。这将允许您在正则表达式中使用regexp转义序列(例如,
\w
),而不必担心它们被解释为字符串转义,如
\n
。这绝对是第一个原因。三重引号还允许在regexp中使用未转换的单引号。