加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

匹配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 =~ '^[^α]*$' ]]

这将检查从开始到结尾的完整字符串是否由非“α”字符组成.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读