GNU grep正则表达式`[一 – 十]`(一到十)与汉字四(四)不符

这个命令
$echo '一二三四五六七八九十' | grep -oE '[一-十]'

输出:

一
二
三
五
六
七
八
九
十

正则表达式[一 – 十](一到十)预计将匹配中国数字.
如示例所示,除了中文字符四(四)之外,它与从1到10的每个中文数字匹配.

为什么?

这是一个错误还是一个笑话?

我可能认为这是一个笑话,因为在中文’四'(四)听起来像’事'(事物).事实上,在一些中文方言中,它们共享相同的发音.因此,“一二三五六七八十”(一二三五六七八九)暗示’没四'(没有四),即’没事'(没有东西).

BTW,我使用的grep版本:

GNU grep 2.5.4
中文数字不符合Unicode.那四是U 56DB,而一是U 4E00,10是5341.所以4不适合.

有关更多信息,请阅读Unicode标准,请参阅http://www.unicode.org/charts/PDF/U4E00.pdf.

相关文章

jquery.validate使用攻略(表单校验) 目录 jquery.validate...
/\s+/g和/\s/g的区别 正则表达式/\s+/g...
自整理几个jquery.Validate验证正则: 1. 只能输入数字和字母...
this.optional(element)的用法 this.optional(element)是jqu...
jQuery.validate 表单动态验证 实际上jQuery.validate提供了...
自定义验证之这能输入数字(包括小数 负数 ) <script ...