这个命令
$ echo '??????????' | grep -oE '[?-?]'
Run Code Online (Sandbox Code Playgroud)
输出:
?
?
?
?
?
?
?
?
?
Run Code Online (Sandbox Code Playgroud)
正则表达式[?-?]
(一到十个)预计将匹配中国数字.如示例所示,除了中文字符?
(四个)之外,它与从1到10的每个中文数字匹配.
为什么?
这是一个错误还是一个笑话?
我可能认为这是一个笑话,因为在中文'四'(四)听起来像'事'(事物).事实上,在一些中文方言中,它们共享相同的发音.因此'一二三五六七八十'(一二三五六七八九)暗示'没四'(没有四),即'没事'(没有东西).
BTW,我使用的grep版本:
GNU grep 2.5.4
Run Code Online (Sandbox Code Playgroud)
中文数字不符合Unicode.那四是U + 56DB,而一是U + 4E00,10是5341.所以4不适合.
有关更多信息,请阅读Unicode标准,请参阅http://www.unicode.org/charts/PDF/U4E00.pdf.