Visual_Basic 板


LINE

: 推 JacobTai:漂亮... : → MOONRAKER:那麽复杂的函数呼叫26次 我不认为这哪里漂亮 : → MOONRAKER:只是表面上比较好维护而已 : → MOONRAKER:当然最好的办法是用scripting.regex : → Y78:不想呼叫那麽多次函数的话 : → Y78:不知道用阵列的方式会不会比较好? : → Y78:Dim str() : → Y78:str = array("A","B"...."Z") : → Y78:for i = 0 to 25 : → Y78:str2 = replace(str2,str(i),"#") : → Y78:next for i=0 to 25,还不是要呼叫26次 复杂的是replace(),不是asc() 以长度 k 的字串来说, 用replace取代其中一个字元,每一个字元都要看过,复杂度 Θ(k) 跑26次,复杂度 Θ(26k) 本人的第一个写法(见第一篇回应),这是一个老屁股写法 只要从头到尾看字串一次,复杂度 Θ(k),而且一次replace都用不到 至於本人以上说的regex (regexp, regular expression, 正规表示式, 正则表示式, whatever) 这也是一种老屁股写法,但是历久弥新,也不是大家都会,但是会了会比较爽 微软本来还自己搞烂烂的简易regex,後来不得不加上完整的regex支援,就是明证 为免口说无凭,以下特示范一次 注:这是VBA的,执行前要到功能表/工具/设定引用项目把 Microsoft VBScript regular expressions 5.5 勾起来 VBScript(用於旧的ASP)我也用过没问题,怎麽引用忘了,程式不在手上 VB6我没真的写过,目前不能装,但是应该不脱VBA的方法 Sub abc() s0 = "Hello! Today is 6th of March, 2009." s1 = "It was saw sLOwly slewing in snow" Set regex0 = New regexp Set regex1 = New regexp regex0.Pattern = "[A-Za-z]" 'regex内容: 所有大写字母和所有小写字母 regex0.Global = True 'global选项: 找出全部符合字串 '(不设就只会取代第一个符合字串, 你可以去掉这行试试看) regex1.Pattern = "s(\w+)w" '任何以 s 开头,w 结尾,任意长度的字串 regex1.Global = True MsgBox "before: " & vbCrLf & s0 & vbCrLf & s1 s0 = regex0.Replace(s0, "#") s1 = regex1.Replace(s1, "***") MsgBox "after: " & vbCrLf & s0 & vbCrLf & s1 End Sub   -- BATCH 03 : 买张床 - 切达大侠 - 伐木人之歌 - http://tinyurl.com/3zpyx5 [B4准备中]: 讴歌金钱(7/02) - 单车超人(7/23) - http://tinyurl.com/66v6vq [ 番外篇 ]: 包租婆也有过当罗莉的时候(7/17) - http://tinyurl.com/6j4ale ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ 蒙帝派松正体中文计画 Spam-a-lot and enjoy the pythonesque delight! ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ https://www.youtube.com/user/JamesBondXD▄▄ --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 59.112.192.152 ※ 编辑: MOONRAKER 来自: 59.112.192.152 (03/07 00:12)
1F:推 Y78:阿 原来是replace的问题 orz 03/07 12:56
2F:推 Y78:你的方法的确快很多很多 03/07 13:05
3F:→ MOONRAKER:可是前一个方法是错的 X( 不过我还是推荐大家学regex :) 03/07 13:35
4F:推 yellissckk:恩 谢谢你罗 03/07 16:29







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:BuyTogether站内搜寻

TOP