找回密码
 加入
搜索
查看: 6400|回复: 3

[AU3基础] 匹配非汉字的正则表达式是什么?

[复制链接]
发表于 2010-12-10 15:49:34 | 显示全部楼层 |阅读模式
本帖最后由 manlty 于 2010-12-10 15:50 编辑
ru1105| 开盘价|      元|止盈 50|止损 20| 1手|今天已做1次交易=y1109 | 开盘价|      元|止盈 20|止损 10| 5手|今天已做3次交易
请正则高手用StringRegExpReplace将字符串中“今天已做1次交易”这部分字符(也就是说前面的|和后面的=号(或者结尾)之间的字符)置空
发表于 2010-12-10 16:00:39 | 显示全部楼层
刚看到的技巧,分享一下
正则验证汉字有三种,测试了三种都可以使用
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。
 楼主| 发表于 2010-12-10 16:13:17 | 显示全部楼层
汉字的正则我有了,感谢AFAN版[^\x00-\xff],不过现在我想知道汉字的非集的正则表达
发表于 2010-12-10 19:26:04 | 显示全部楼层
回复 2# lpxx
测试过几次,AU3正则标准好像不支持\uxxxx参数。但好像支持\x{xx}
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-9-21 16:20 , Processed in 0.077001 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表