Excel VBA从文件名提取date
我正在使用以下,获取文件名。
Dim wbName As String wbName = Left(ActiveWorkbook.Name, (InStrRev(ActiveWorkbook.Name, ".", -1, vbTextCompare) - 1))
一些文件名可能如下所示:
“CM CC跟踪日志FY 17-18-08.07.17”
“跟踪日志10-23-17”
“跟踪日志17-18美国汽车俱乐部 – 8-7-17”
我想弄清楚如何提取datestring,模式匹配使用正则expression式。
17年7月8日
17年10月23日
17年8月7日
你可以试试这个模式:
\b(1[0-2]|0?[1-9])[-./](3[01]|[1-2]\d|0?[1-9])[-./](\d{2}|\d{4})\b
假设你的例子中显示的date,
- 是MDY格式,
- M可以是1-12范围内的单数或双数数字,也可以是1到9的可选数字
0
- D将在1-31的范围内,可选的前导0为1-9
- Y将是两位数字或四位数字
分隔符将在[-./]
的集合中
如果您需要的话,MD和Y将处于不同的捕获组中。
如果没有足够的描述,你需要更具体。 例如,修改所有的分隔符都是一样的。
这个正则expression式会捕获你提到的所有date格式。 确保它是一个global
:
(\d{1,2}[.,-]\d{1,2}[.,-]\d{1,2})