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