这段正则代码为什么能匹配含有汉字的字段?

软件平台:Ubuntu 14.04LTS的find命令

命令代码:

  find . -regextype "posix-extended" -regex "./[^x{4e00}-x{9fa5}]+.*"

效果:匹配所有含有汉字文件名的文件

疑问:utf编码 x{4e00}到 x{9fa5}是 汉字的区间,应该用 [x{4e00}-x{9fa5}]才对。但是只有[^x{4e00}-x{9fa5}] 才能实现以汉字开头的功能。

请问:为什么要用否定匹配符号?

http://www.cnblogs.com/wenmaoyu/archive/2011/07/21/2113124.html

[^x]似乎是用来匹配双字节字符

匹配汉字应该用 [\u4E00-\u9FA5]+

http://ubuntu-rubyonrails.blogspot.com/2009/06/unicode.html