callwww 发表于 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}]')

zghwelcome 发表于 2016-8-9 16:38:32

标记,谢谢分享

skyfree 发表于 2016-8-9 18:07:16

本帖最后由 skyfree 于 2016-8-9 18:09 编辑

StringRegExp($sText, '[\x{4e00}-\x{9fff}]')

Huiseyu 发表于 2016-8-9 19:40:40

精彩..哈哈

callwww 发表于 2016-8-10 12:18:58


skyfree 发表于 2016-8-9 18:07 http://www.autoitx.com/images/common/back.gif


    Thanks for sharing

callwww 发表于 2016-8-10 12:19:54

回复 3# skyfree


    thanks for sharing

guoguo188 发表于 2021-5-21 14:59:51

$sStr=StringRegExpReplace ( $sStr, "[^A-Za-z0-9\x{4e00}-\x{9fff}]", "" );删除 非中文 非英文 非数字
$sOut = StringRegExp ($sStr, "", 3);提取 中文英文数字
页: [1]
查看完整版本: 正则表达式 匹配中文字符方法