作者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/cn.aspx?n=bbs/Office/M.1538322080.A.A07.html
1F:→ luckid: 规则应改为"([\s\S]+\\+)(([\s\S]+)(\.+\w+))" 10/06 21:41