Python 正则表达式的命名约定?

Naming convention for Python regular expressions?

在 Python 中是否有公认的正则表达式命名约定?或者如果没有,关于如何命名它们有什么建议?

通常我将它们命名为 look_for_dateaddress_re,但我读过几个地方,在变量名中使用像“_re”这样的后缀并不好。在我看来,正则表达式似乎需要一些东西来表明它是一个正则表达式,因为如果你只将它命名为 dateaddress,你将无法做这样的事情,这看起来很直观:

date = date_re.match(text)

编译的正则表达式通常是 常量,因此每个 PEP 8 应该有一个 UPPER_CASE_WITH_UNDERSCORES 名称。我倾向于根据它们匹配的名称来命名它们;以我最近写的一些代码为例:

import re

VALID_CLOSURE_PATTERN = re.compile(r'''
    ^\d{2}    # starts with two digits 0-9
    [NY]{4}$  # followed by four Y/N characters
''', re.IGNORECASE + re.VERBOSE)


class RoadClosure(object):

    def __init__(self, ..., closure_pattern):
        """Initialise the new instance."""
        if not VALID_CLOSURE_PATTERN.match(closure_pattern):
            raise ValueError('invalid closure pattern: {!r}'.format(closure_pattern))
       ...

...

我认为这很清楚发生了什么,VALID_CLOSURE_PATTERN 传达了 "this describes what we would consider to be a valid closure pattern" 和一行:

if not VALID_CLOSURE_PATTERN.match(closure_pattern):

用近乎通俗易懂的英语描述了它的实际作用。所以在你的情况下,你可以写:

date = VALID_DATE.match(text)