[算表] (分享)解析路径用的小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