正则表达式库中特定于区域设置的行为

Locale specific behavior in the regex library?

本文关键字:区域 设置 于区域 正则表达式      更新时间:2023-10-16

当我向regex对象注入特定的语言环境时,它如何影响匹配行为?它会影响排序规则吗?我似乎找不到任何解释。

它至少会影响以下内容:

  • 排序规则:充满法语区域设置的正则表达式[a-f]应该与字符é匹配
  • 类似地,芬兰语区域设置中的w应该与字符ä匹配(但[a-z]应该而不是,如芬兰语中z后面的å、ä和öcollate。然而,在德语中,[a-z]应该与ä匹配。)
  • 在Unicode兼容的区域设置中,应该使用Unicode等效算法,以便字符的组合形式与分解形式匹配,反之亦然
  • 使用与POSIX兼容的regex风格(基本、扩展、awk、grep和egrp),POSIX字符类应该具有区域设置意识:[=e=]应该在法语区域设置中匹配é,但在英语区域设置中不匹配

在西班牙语语言环境中,请注意"ch"answers"ll"不再被视为字母表中的单个字母,因为这是由相关实体更改的。我找不到确切的日期,但现在"ch"answers"ll"是两个字母:

http://en.wikipedia.org/wiki/Ll

我认为现在的实现反映了这一事实。