找回密码
 加入
搜索
查看: 3750|回复: 8

[效率算法] 正则间隔替换[已解决]

  [复制链接]
发表于 2012-6-19 20:58:49 | 显示全部楼层 |阅读模式
本帖最后由 haijie1223 于 2012-6-20 19:28 编辑
Local $str1 = Asc("A") & "," & Asc("B") & "," & Asc("C") & "," & Asc("D") & "," & Asc("E") & "," & Asc("F") & "," & Asc("G") & "," & Asc("H")
MsgBox(0, "", $str1)
Local $str2 = "A" & "," & "B" & "," & "C" & "," & "D" & "," & "E" & "," & "F" & "," & "G" & "," & "H"
MsgBox(0, "", $str2)
如题:想用正则替换的方法,使得$str1得到$str2.
谢谢!
发表于 2012-6-19 21:43:07 | 显示全部楼层
早两天从 Duvet 大师那学到的~ ExpandVarStrings
Local $str1 = '', $str2
For $i = Asc('A') To Asc('H')
        $str1 &= $i & ','
        Assign('___' & $i, Chr($i))
Next
$str1 = StringTrimRight($str1, 1) ;得到测试字符串及同时增加了申明

Opt('ExpandVarStrings', 1)
$str2 = StringRegExpReplace($str1, '\d+', '$___\0$')
MsgBox(0, $str1, $str2)

评分

参与人数 2金钱 +40 收起 理由
3mile + 20 新知识
haijie1223 + 20 针对性很强,谢谢A版!

查看全部评分

发表于 2012-6-19 21:47:25 | 显示全部楼层
就是去掉下面两个字符串???
"ASC("
")"
 楼主| 发表于 2012-6-19 23:47:24 | 显示全部楼层
回复 3# zldfsz


    是的。。。
发表于 2012-6-20 11:14:26 | 显示全部楼层
回复 2# afan
ExpandVarStrings果然犀利
发表于 2012-6-20 11:18:02 | 显示全部楼层
回复 5# 3mile


    是的,相当于变相的代入了“匹配”
发表于 2012-6-20 18:18:30 | 显示全部楼层
就是去掉下面两个字符串???
"ASC("
")"
zldfsz 发表于 2012-6-19 21:47

回复  zldfsz
    是的。。。
haijie1223 发表于 2012-6-19 23:47



    晕,完全不是一个概念…
Local $Str = 'Asc("A") & "," & Asc("B") & "," & Asc("C") & "," & Asc("D") & "," & Asc("E") & "," & Asc("F") & "," & Asc("G") & "," & Asc("H")' & @CRLF
MsgBox(0, '原字符串', $Str)
Local $Test = StringRegExpReplace($str, '(?i)Asc\((.+?)\)', '$1')
MsgBox(0, '替换结果', $Test)

评分

参与人数 1金钱 +30 贡献 +2 收起 理由
haijie1223 + 30 + 2 有A版在,总能学到新东西!

查看全部评分

 楼主| 发表于 2012-6-20 19:19:28 | 显示全部楼层
回复 7# afan


    A版把我的问题想复杂了,不过学到了更多的东西,真是好!
StringRegExpReplace($str, '(?i)Asc\((.+?)\)', '$1')
这一句中的正则和后面的替换,A版能讲解一下么,看不大明白。
 楼主| 发表于 2012-6-20 19:28:05 | 显示全部楼层
回复 7# afan


    再次谢谢A版,已经大体明白了。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-5-21 00:20 , Processed in 0.078857 second(s), 25 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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