Python 为什么在PEP 0263正则表达式中使用“.”?

Python 为什么在PEP 0263正则表达式中使用“.”?,python,regex,syntax,pep,Python,Regex,Syntax,Pep,在中,定义Python文件编码的格式定义为: coding[:=]\s*([-\w.]+) 为什么正则表达式中有一个,或者,为什么有-和\w?据我所知,匹配除换行符以外的任何字符,因此[-\w]或[.]将匹配由字母数字字符和破折号组成的法定名称 在[-\w.]中同时指定-\w和的原因是什么?在字符类中使用和-时,它们的行为都不同。在字符类中,没有特殊含义,将仅被视为点,其中as-可用于指定范围,如a-zA-Z0-9 因为在这种情况下我们不使用-来表示范围,所以和-将只匹配它们自己。它们不会有特

在中,定义Python文件编码的格式定义为:

coding[:=]\s*([-\w.]+)
为什么正则表达式中有一个
,或者,为什么有
-
\w
?据我所知,
匹配除换行符以外的任何字符,因此
[-\w]
[.]
将匹配由字母数字字符和破折号组成的法定名称


[-\w.]
中同时指定
-\w
的原因是什么?

在字符类中使用
-
时,它们的行为都不同。在字符类中,
没有特殊含义,将仅被视为点,其中as
-
可用于指定范围,如
a-zA-Z0-9

因为在这种情况下我们不使用
-
来表示范围,所以
-
将只匹配它们自己。它们不会有特殊的含义

还请注意,
\w
可定义为
[a-zA-Z0-9_33;]
。它只匹配下划线字符(
)(而不匹配破折号(
-

引述

\w 未指定
区域设置
UNICODE
标志时,匹配任何字母数字字符和下划线;这相当于设置
[a-zA-Z0-9.]
。使用
LOCALE
,它将匹配集合
[0-9\
以及当前LOCALE中定义为字母数字的任何字符。如果设置了
UNICODE
,这将匹配字符
[0-9]
以及UNICODE字符属性数据库中分类为字母数字的任何字符


正在检查,有一个指向@HamZa的链接:谢谢,这正是我需要的!谢谢,我没有意识到在这个上下文中,
只匹配文本