【发布时间】:2012-01-28 07:33:54
【问题描述】:
当我为一个正则表达式对象注入一个特定的语言环境时,它如何影响匹配行为?它会影响排序规则还是其他什么?我似乎在任何地方都找不到解释。
【问题讨论】:
-
@DonStewart:我只对 C++ 细节感兴趣。地区特定的行为不一定在我想象的所有地方都相同。
-
区域设置会影响符合 POSIX 的正则表达式引擎,这至少是大多数正则表达式库的起点。
当我为一个正则表达式对象注入一个特定的语言环境时,它如何影响匹配行为?它会影响排序规则还是其他什么?我似乎在任何地方都找不到解释。
【问题讨论】:
它至少会影响以下方面:
[a-f] 应与字符 é 匹配。\w 应匹配字符 ä(但 [a-z] 不应不,因为芬兰语中的 å、ä 和 ö 排列在 z 之后。然而,在德语中,@ 987654326@ 应该匹配 ä。)[=e=] 应该在法语区域设置中匹配 é,但在英语区域设置中不匹配。 【讨论】:
请注意,在西班牙语言环境中,“ch”和“ll”不再被视为字母表中的单个字母,因为相关实体已更改了这一点。我找不到确切的日期,但现在“ch”和“ll”是两个字母:
http://en.wikipedia.org/wiki/Ll
我认为现在的实现反映了这一事实。
【讨论】: