小编use*_*276的帖子

VBA正则表达式,替换组

我正在使用Excel中的VBA正则表达式替换格式错误的日期字符串(和其他项目).

我希望替换具有正确的YYYY-MMM-DD格式的日期字符串,但缺少破折号分隔符 - 例如:

2014,APRIL,04 or 
2014.Apr,04 or
2014/Apr-04
Run Code Online (Sandbox Code Playgroud)

我希望它们被格式化为以下任何一种:

2014-Apr-04
2014-April-04
Run Code Online (Sandbox Code Playgroud)

(即保留提供的年,月,日元素,但只需用短划线替换分隔符,而不是逗号,句号或其他奇怪的字符)

我现在的代码是:

Dim RE As Object
Set RE = CreateObject("vbscript.regexp")
With RE
    .Global = False ' Several occurrence to be found
    .IgnoreCase = True
    .Pattern = "(((19|20)[0-9]{2})[, /.]([a-zA-Z]+)[, /.](0[1-9]|[12][0-9]|3[01])[, /.])"
End With

Dim ReplacePattern As String
ReplacePattern = "$1-$2-$3"

Dim match As Boolean
match = RE.Test(LogEntryTxt)

LogEntryTxt = RE.Replace(LogEntryTxt, ReplacePattern)
Run Code Online (Sandbox Code Playgroud)

但似乎替换不正确.有人可以帮忙吗?我曾尝试研究命名组,编号组等,但我尝试过的任何事情都没有完成.

regex excel vba excel-vba

7
推荐指数
1
解决办法
7266
查看次数

标签 统计

excel ×1

excel-vba ×1

regex ×1

vba ×1