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燈, 水草

請輸入看板名稱,例如:WOW站內搜尋

TOP