gpt4 book ai didi

regex - 在 zsh 正则表达式中匹配 unicode 字符

转载 作者:行者123 更新时间:2023-12-02 01:53:52 25 4
gpt4 key购买 nike

我想确保变量不包含特定字符(在本例中为“α”),但以下代码失败(返回 1):

FOO="test" && [[ $FOO =~ '^[^α]*$' ]]

编辑:根据下面的 Stema 反馈更改了模式,要求从头到尾仅匹配“非“α””字符。

用例如替换“α” “x”按预期工作。为什么它会失败并显示“α”,我该如何使其工作?

系统信息:

$ zsh --version
zsh 4.3.11 (i386-apple-darwin11.0)
$ locale
LANG="en_GB.UTF-8"
LC_COLLATE="en_GB.UTF-8"
LC_CTYPE="en_GB.UTF-8"
LC_MESSAGES="en_GB.UTF-8"
LC_MONETARY="en_GB.UTF-8"
LC_NUMERIC="en_GB.UTF-8"
LC_TIME="en_GB.UTF-8"
LC_ALL="en_GB.UTF-8"

编辑 2:我现在在运行 Ubuntu 11.10 和 zsh 4.3.11 且具有相同语言环境设置的 Linux 计算机上进行了测试,并且它可以工作 – 即 FOO="test"&& [[ $FOO =~ '^[^α]*$' ]] 返回成功。我运行的是 Mac OS X 10.7.2。

最佳答案

使用此正则表达式 .*[^α].* 您无法测试 α 不在字符串中。这是测试的内容:字符串中是否有一个字符不是 α

如果你想检查字符串中是否有这个字符,请执行以下操作

FOO="test" && [[ $FOO =~ '^[^α]*$' ]]

这将检查从开始到结束的完整字符串是否包含非“α”字符。

关于regex - 在 zsh 正则表达式中匹配 unicode 字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8546333/

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