匹配zsh正则表达式中的unicode字符
发布时间:2020-12-13 23:22:35 所属栏目:Linux 来源:网络整理
导读:我想确保变量不包含特定字符(在本例中为’α’),但以下代码失败(返回1): FOO="test" [[ $FOO =~ '^[^α]*$' ]] 编辑:根据下面stema的反馈更改模式,要求从头到尾只匹配“非””字符. 用例如’α’替换’α’ ‘x’按预期工作.为什么它以’α’失败,我怎样才
我想确保变量不包含特定字符(在本例中为’α’),但以下代码失败(返回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的Linux机器上进行了测试,其中zsh 4.3.11具有相同的语言环境设置,并且它可以工作 – 即FOO =“test”&& [[$FOO =?’^ [^α] * $’]]返回成功.我正在运行Mac OS X 10.7.2. 解决方法
用这个正则表达式.* [^α].*你不能测试α不在字符串中.测试的是:字符串中是否有一个字符不是α.
如果要检查字符串中是否没有此字符,请执行此操作 FOO="test" && [[ $FOO =~ '^[^α]*$' ]] 这将检查从开始到结尾的完整字符串是否由非“α”字符组成. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |