我不清楚POSIX [:alpha:]
Regex字符类在所有区域设置或字符集中是否严格等效于Regex表达式[a-zA-Z]
,或者如果所讨论的区域设置或角色集允许重音字符,它是否还包括重音字符。
上的规范http://pubs.opengroup.org/onlinepubs/009696899/basedefs/xbd_chap09.html只提到它应该受到所有地区的支持,但没有提到它包含的内容。
有没有权威的地方可以明确定义[:alpha:]
字符类的确切含义?
2013规范,9.3.5.7:
在POSIX区域设置中,范围表达式表示排序规则中位于两个元素之间的元素序列,包括在其他区域设置中,范围表达式具有未指明的行为:严格符合要求的应用程序不应依赖关于范围表达式是否有效,或者关于排序规则集元素匹配
(增加了重点。)
因此,在POSIX语言环境之外,严格地说,[a-zA-Z]
甚至不是定义(当然,由于这些都是ASCII字符,在实践中我希望它在任何地方都有同样的含义;但是考虑一下EBCDIC,其中这些字符甚至不连续。所以可以是例外。)
[:alpha:]
的确切含义取决于语言环境,许多地区,由各种实体定义。我当然不会关于[:alpha:]
在任何POSIX以外的语言环境。