作者luckid (luckid)
看板Office
標題[算表] (分享)解析路徑用的小fn
時間Sun Sep 30 23:41:16 2018
各位前輩好,
小的有用正則表達式(regEx)做了一個簡單的路徑分析小function,
頗為簡陋,僅供參考,期能起拋磚引玉之效.
小弟真心覺得regEx在解析字串時很好用,
而且在多數情況下,同樣的regEx規則可通用於其他語言,
雖然無法通用於德語或法語等語言(好笑嗎),
但感覺cp值頗高,值得花時間學習.
fn有不對的地方請各位前輩不吝指正,感謝
fn說明:
解析路徑用的function
path是檔案路徑,例如 "d:\myFolder\subfolder\folder3\abcde.txt"
parseType表示要解析的部分,預設為2
可給的值如下:
1:路徑不含檔名
2:檔名含副檔名
3:檔名不含副檔名
4:副檔名
Function parsePath(path, Optional parseType)
If IsMissing(parseType) Or Not WorksheetFunction.IsNumber(parseType) _
Then parseType = 2
Dim RegEx As Object
Set RegEx = CreateObject("VBScript.RegExp")
RegEx.pattern = "([\s\S]+\\+)((\w+)(\.+\w+))"
patternToReplace = "$" + CStr(parseType)
path = RegEx.replace(path, patternToReplace)
parsePath = path
End Function
使用方式如下:
Sub test()
Dim str As String
str = "D:\workSpace\excel\import.xlsm"
str = parsePath(str, 2)
MsgBox str
End Sub
注意事項:
使用此fn前需按alt+F11開啟VBE後,
在工具>設定引用項目
勾選
Microsoft VBScript Regular Expressions 5.5
---
小的有在fb成立一個vba討論社團,
有興趣的朋友可以參考看看,
也很歡迎板友加入並給予指導,感謝:
https://www.facebook.com/groups/804156859723363/
--
https://www.youtube.com/watch?v=B_CMmbFexbM
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.227.122.6
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Office/M.1538322080.A.A07.html
1F:→ luckid: 規則應改為"([\s\S]+\\+)(([\s\S]+)(\.+\w+))" 10/06 21:41