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

Python正则表达式的命名约定?,python,regex,naming-conventions,naming,Python,Regex,Naming Conventions,Naming,Python中是否有公认的正则表达式命名约定?如果没有,对如何命名它们有什么建议 通常我给它们命名为look\u for\u date或address\u re,但我读过一些地方,在变量名中使用像“\u re”这样的后缀是不好的。在我看来,正则表达式似乎需要一些东西来表示它是正则表达式,因为如果您仅将其命名为日期或地址,您将无法执行类似的操作,这似乎很直观: date = date_re.match(text) 编译后的正则表达式通常是常量,因此应该有一个带有下划线的大写字母。我倾向于根据它们

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

通常我给它们命名为
look\u for\u date
address\u re
,但我读过一些地方,在变量名中使用像“\u re”这样的后缀是不好的。在我看来,正则表达式似乎需要一些东西来表示它是正则表达式,因为如果您仅将其命名为
日期
地址
,您将无法执行类似的操作,这似乎很直观:

date = date_re.match(text)

编译后的正则表达式通常是常量,因此应该有一个带有下划线的
大写字母。我倾向于根据它们的匹配程度来命名它们;举一个我最近写的代码的例子:

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))
       ...

...

我认为这很清楚发生了什么,<代码> ValueCululuxObjult通信:“这描述了我们认为是一个有效的闭合模式”和一条类似的线:

if not VALID_CLOSURE_PATTERN.match(closure_pattern):
用简单的英语描述它实际上在做什么。所以在你的情况下,你可以写:

date = VALID_DATE.match(text)

酷,我也想问一下大写字母的问题。谢谢你的回答。那么这些是指导方针,而不是PEP神刻在石头上的?