匹配非汉字的正则表达式是什么?
本帖最后由 manlty 于 2010-12-10 15:50 编辑ru1105| 开盘价| 元|止盈 50|止损 20| 1手|今天已做1次交易=y1109 | 开盘价| 元|止盈 20|止损 10| 5手|今天已做3次交易请正则高手用StringRegExpReplace将字符串中“今天已做1次交易”这部分字符(也就是说前面的|和后面的=号(或者结尾)之间的字符)置空 刚看到的技巧,分享一下
正则验证汉字有三种,测试了三种都可以使用
1.[^\u0000-\u00FF]*2.[\u0391-\uFFE5]+3.([\u4e00-\u9fa5]+$)用 \u****在正则里就表示一个unicode编码(通常用0x****的形式表示),而以上三种正则,区别就是范围的大小:
1 是指除了\u0000到\u00FF 之外的所有字符,而 0000 - 00FF 就是我们常说的ASCII码及一些补充字符,因而用这个正则来判定是否是中文是很不严谨的,所有的双字节字符都会返回真,比如日文。
2 这个编码范围看到过,查了查unicode编码表,似乎没有特别的说明。不过单从范围上来说,它所包含的区间恰好涵盖了 3 里的范围,因而它的范围比单纯验证中文的范围要大,所以可以验证通过,但也包含了不是中文的部分字符。
3 这个就是我们常用的验证中文的unicode范围(\u4e00-\u9fa5),包含中、日、韩中包含的所有常用汉字,因而用这个区间来验证汉字是最准确的,具体包含的汉字及编码查询可以查看这个网址:http://www.chi2ko.com/tool/CJK.htm。
另外还有一种中文的范围的说法是 4E00-9FBF,而这个是指CJK统一表意符号 (CJK Unified Ideographs),它是unicode里划分的一个区间块,也是最接近纯中文的范围,仅次于 3 的范围。CJK当然就是指 Chinese, Japanese和Korea。 汉字的正则我有了,感谢AFAN版[^\x00-\xff],不过现在我想知道汉字的非集的正则表达 回复 2# lpxx
测试过几次,AU3正则标准好像不支持\uxxxx参数。但好像支持\x{xx}
页:
[1]