cynthia59 发表于 2013-5-23 15:04:33

【已解决】含汉字的正则表达式怎么写?

本帖最后由 cynthia59 于 2013-5-23 16:39 编辑

MsgBox(0,"1",StringRegExpReplace("c:\asd\一二三\asd一二三.lba", '\w+.lba', 'Result.MDB',1))
MsgBox(0,"2",StringRegExpReplace("c:\asd\一二三\asd一二三.lba", '\\.+lba', '\\Result.MDB',1))我想将最后一个'\'后面的内容换成'Result.MDB',文件名可能是汉字、数字、字母及常用符号等。
如果用第一行,不能识别汉字;如果用第二行,直接把从第一个'\'开始以后的都换掉了,请问这里该怎么处理?

afan 发表于 2013-5-23 16:01:13

MsgBox(0, 3, StringRegExpReplace('c:\asd\一二三\asd一二三.lba', '(.+\\).*', '${1}Result.MDB'))

cynthia59 发表于 2013-5-23 16:10:58


afan 发表于 2013-5-23 16:01 http://www.autoitx.com/images/common/back.gif


    首先感谢下afan大哥!
    能不能稍微解释一下,没太看懂,尤其是后面那个$表示什么的?

afan 发表于 2013-5-23 16:13:00

回复 3# cynthia59


    引用捕捉到的组。1代表第1个组。也可以表示为“$1”、“\1”

cynthia59 发表于 2013-5-23 16:18:57

那'(.+\\).*'这里为什么不是取到第一'\'就结束了,而是取到最后一个呢?

afan 发表于 2013-5-23 16:25:27

+ 是很贪婪的,它会一直吃到没有 \ 为止

cynthia59 发表于 2013-5-23 16:32:28

原来是这样啊,看来单纯看帮助文档学习的话还是有点局限,这些东西还是要碰到的时候积累起来才行。
每次都第一时间回复我的问题,我会通过好好学习autoit来回报大哥的,哈哈!

zym3138 发表于 2013-5-29 11:56:12

向afan大哥致敬!佩服其才华

mimier123 发表于 2013-12-12 16:03:16

学习了,感谢。
页: [1]
查看完整版本: 【已解决】含汉字的正则表达式怎么写?