gpt4 book ai didi

regex - grep POSIX 正则表达式匹配印地语和日语

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:51:02 29 4
gpt4 key购买 nike

我尝试以下 echo 'ひらガ' | grep '[[:alnum:]]' 它与字符串匹配。

但我的语言环境显示英语:

LANG=en_US.UTF-8
LANGUAGE=en_US
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC=en_US.UTF-8
LC_TIME=en_US.UTF-8
LC_COLLATE="en_US.UTF-8"
LC_MONETARY=en_US.UTF-8
LC_MESSAGES="en_US.UTF-8"
LC_PAPER=en_US.UTF-8
LC_NAME=en_US.UTF-8
LC_ADDRESS=en_US.UTF-8
LC_TELEPHONE=en_US.UTF-8
LC_MEASUREMENT=en_US.UTF-8
LC_IDENTIFICATION=en_US.UTF-8
LC_ALL=

不应该 [:alnum:] 匹配语言环境中设置的语言,这里发生了什么?

最佳答案

我打算将此作为部分答案发布,因为我花了一些时间来挖掘这些信息,而且评论太长了。

如果您查看 Linux 安装时位于 /usr/share/i18n/locales 的区域设置定义文件,我们可以发现 LC_CTYPE 的定义(它定义了字符的分类,如 C 中的 ctype.hen_US 中的 POSIX 字符类所使用的那样,从 en_GB 中复制定义, en_GB 中的 LC_CTYPE 定义复制了 i18n 中的定义,并进行了少量添加。

查看文件i18n,大部分LC_CTYPE 定义都在这里。我们可以看到 alpha 包含了 Unicode 定义的所有语言的字母,下面的注释简要解释了基本原理:

% The "alpha" class of the "i18n" FDCC-set is reflecting
% the recommendations in TR 10176 annex A
alpha /

标准 ISO/IEC TR 10176 standard 的附件 A 似乎建议使用“用户定义标识符的扩展指令集”,这应该是“提高母语不是英语的程序员的可理解性”,尽管我看不出它是如何实现的与 alpha 字符类的定义有关。

关于regex - grep POSIX 正则表达式匹配印地语和日语,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31473158/

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