dot*_*hen 4 python regex syntax pep
在PEP 0263中,定义Python文件编码的格式定义为:
coding[:=]\s*([-\w.]+)
Run Code Online (Sandbox Code Playgroud)
为什么.
在正则表达式中,或者为什么存在-
和\w
?到目前为止,我明白了,.
匹配除换行符之外的任何字符,所以无论是[-\w]
或[.]
将匹配的法律名称,其中包括字母数字字符和破折号.
将两者-\w
同时.
指定在一起的原因是什么[-\w.]
?
当您在字符类中使用.
和-
时,它们的行为都不同.在字符类中,.
没有特殊含义,只会被视为点,其中-
可以用来指定范围a-zA-Z0-9
.
既然我们不使用-
代表一系列在这种情况下,无论是.
和-
将只匹配自己.它们没有特殊意义.
还要注意,\w
可以定义为[a-zA-Z0-9_]
.它只匹配下划线字符(_
)而不是短划线(-
).
\ W
如果未指定
LOCALE
和UNICODE
标志,则匹配任何字母数字字符和下划线; 这相当于集合[a-zA-Z0-9_]
.使用时LOCALE
,它将匹配集合[0-9_]
以及为当前区域设置定义为字母数字的任何字符.如果UNICODE
设置,则将匹配字符[0-9_]
加上Unicode字符属性数据库中分类为字母数字的内容.