找回密码
 加入
搜索
查看: 3441|回复: 6

[AU3基础] 正则表达式 匹配中文字符方法

  [复制链接]
发表于 2016-8-9 16:23:43 | 显示全部楼层 |阅读模式
本帖最后由 callwww 于 2016-8-10 12:20 编辑

中文字符的正则表达式 [\u4e00-\u9fa5]
因为AU3正则表达式不支持 \u

而为了匹配中文,去除中文以外的其它字符就很麻烦,后来想到借用 obj对象来实现。
下面是核心代码,供参考!
$vbRegExp = ObjCreate("vbscript.regexp")        ;AU3不支持\U正则表达式,用VBscript正则表达式来实现
        With $vbRegExp
                .Global = True     ;设置全局匹配,查找所有
                .IgnoreCase = True         ;不区分大小写
                .Pattern ="[^\u4e00-\u9fa5]+"  ;所有简体中文以外的字符
                $strTmp=.Replace($strTmp, "")         ;把符合要求的字符替换为无
        EndWith
这是目前我知道的简洁高效的方法,有更好方法的,分享下噢

感谢3楼skyfree分享
StringRegExp($sText, '[\x{4e00}-\x{9fff}]')

评分

参与人数 1金钱 +28 收起 理由
guoguo188 + 28 $sStr=StringRegExpReplace ( $sStr, &quot

查看全部评分

发表于 2016-8-9 16:38:32 | 显示全部楼层
标记,谢谢分享
发表于 2016-8-9 18:07:16 | 显示全部楼层
本帖最后由 skyfree 于 2016-8-9 18:09 编辑
StringRegExp($sText, '[\x{4e00}-\x{9fff}]')
发表于 2016-8-9 19:40:40 | 显示全部楼层
精彩..哈哈
 楼主| 发表于 2016-8-10 12:18:58 | 显示全部楼层
skyfree 发表于 2016-8-9 18:07



    Thanks for sharing
 楼主| 发表于 2016-8-10 12:19:54 | 显示全部楼层
回复 3# skyfree


    thanks for sharing
发表于 2021-5-21 14:59:51 | 显示全部楼层
$sStr=StringRegExpReplace ( $sStr, "[^A-Za-z0-9\x{4e00}-\x{9fff}]", "" );删除 非中文 非英文 非数字
$sOut = StringRegExp ($sStr, "[A-Za-z0-9\x{4e00}-\x{9fff}]", 3);提取 中文英文数字
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-4-20 12:11 , Processed in 0.084959 second(s), 27 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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