【发布时间】:2018-10-27 20:48:08
【问题描述】:
我有一个应用程序,它以将文本复制到剪贴板的形式输出查询。
我想出将文本解析为数组,然后将其填充回 excel。
源字符串包含格式为“dd.mm.yyyy”的多个日期实例,我一直在输出列上使用查找/替换将其更改为“dd/mm/yyyy”。我想知道在使用正则表达式解析到数组之前是否可以/更快地在字符串中替换这些。
strPattern = "(0?[1-9]|[12][0-9]|3[01])[\.](0?[1-9]|1[012])[\.]\d{4}"
strReplace = "$dd\/dd\/dddd"
With regEx
.Global = True
.MultiLine = False
.IgnoreCase = False
.Pattern = strPattern
End With
If regEx.test(sString) Then
sString = regEx.Replace(sString, strReplace)
End If
最终结果还不是我所希望的。我认为“strReplace”的格式是错误的,但我不太了解正则表达式来修复它。以上是通过(太多)小时的网络搜索实现的。
感谢您的帮助。
【问题讨论】:
-
试试
strReplace = "$1/$2/$3"BTW,你不需要测试字符串是否匹配。如果没有匹配,则字符串不会被修改。 -
返回 dd/mm/$3。这么近
-
是的,因为
\d{4}周围没有捕获组。使用"(0?[1-9]|[12][0-9]|3[01])\.(0?[1-9]|1[012])\.(\d{4})"模式和strReplace = "$1/$2/$3"
标签: regex excel vba date replace