gpt4 book ai didi

python - 为什么在 PEP 0263 正则表达式中是 `.`?

转载 作者:太空狗 更新时间:2023-10-30 02:20:25 25 4
gpt4 key购买 nike

PEP 0263定义 Python 文件编码的格式定义为:

coding[:=]\s*([-\w.]+)

为什么会有一个.在正则表达式中,或者为什么有 -\w ?据我了解,.匹配除换行符以外的任何字符,所以 [-\w][.]将匹配由字母数字字符和破折号组成的合法名称。

同时拥有-\w的原因是什么?和 .[-\w.] 中一起指定?

最佳答案

当您在字符类中使用 .- 时,它们的行为不同。在字符类中,. 没有特殊含义,只会被视为点,而 - 可用于指定范围,如 a-zA-Z0- 9

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

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

引自Python RegEx documentation ,

\w

When the LOCALE and UNICODE flags are not specified, matches any alphanumeric character and the underscore; this is equivalent to the set [a-zA-Z0-9_]. With LOCALE, it will match the set [0-9_] plus whatever characters are defined as alphanumeric for the current locale. If UNICODE is set, this will match the characters [0-9_] plus whatever is classified as alphanumeric in the Unicode character properties database.

关于python - 为什么在 PEP 0263 正则表达式中是 `.`?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23239588/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com