[算表] (分享)解析路徑用的小fn

作者: luckid (luckid)   2018-09-30 23:41:16
各位前輩好,
小的有用正則表達式(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
作者: luckid (luckid)   2018-10-06 21:41:00
規則應改為"([\s\S]+\\+)(([\s\S]+)(\.+\w+))"

Links booklink

Contact Us: admin [ a t ] ucptt.com