liuyilun 发表于 2016-9-26 11:18:38

[已解决]关于正则的问题

本帖最后由 liuyilun 于 2016-9-26 18:17 编辑

麻烦大神看下这段代码可以优化吗

$a='http://d.abc.com/download/version/v1.2.3.4/abc_Setup_v1.2.3.4_guanwang_1.exe'
$name=StringRegExpReplace($a,".*\/","")
$qd=StringRegExp($name,"\d_(.*)_\d",3)
$name=StringRegExpReplace($name,$qd,"gw")
MsgBox(0,0,$name)

haijie1223 发表于 2016-9-26 15:28:09

$name = StringRegExpReplace('http://d.abc.com/download/version/v1.2.3.4/abc_Setup_v1.2.3.4_guanwang_1.exe', '.*/', "")

liuyilun 发表于 2016-9-26 15:49:50

回复 2# haijie1223


    感谢,原来这里不用转义,其实我主要想问后面两句能不能简化

haijie1223 发表于 2016-9-26 16:21:14

回复 3# liuyilun


    刚才看错了,我以为你只要匹配后面的部分。$name=StringRegExpReplace('http://d.abc.com/download/version/v1.2.3.4/abc_Setup_v1.2.3.4_guanwang_1.exe','.*/(.*?)(_)(\w+)(_\d*\.exe)','$1$2gw$4')

heroxianf 发表于 2016-9-26 17:25:54

这是我请教的时候 可以替换来获取

Local $sSource = 'http://d.abc.com/download/version/v1.2.3.4/abc_Setup_v1.2.3.4_guanwang_1.exe'
;~MsgBox(0, '源字符串', $sSource)
Local $sSRERe = StringRegExpReplace($sSource, '.+\/', '')
MsgBox(0, '替换结果', $sSRERe)

liuyilun 发表于 2016-9-26 17:54:04

本帖最后由 liuyilun 于 2016-9-26 18:14 编辑

回复 4# haijie1223

感谢大神,果然可以,帮助文档里说的这个$0-$9是组文本是什么意思?能否解答一下
是不是前面匹配出来的组第一个字符串就是$1,第二个就是$2,以此类推,是这个意思吗?

haijie1223 发表于 2016-9-26 18:16:40

回复 6# liuyilun


    我的理解是这样的

xinsifang 发表于 2016-10-3 10:03:51

回复 4# haijie1223


    学习路过
页: [1]
查看完整版本: [已解决]关于正则的问题