Excel - 在VBA中使用正则表达式拆分单元格,保留分隔符



我在Excel中有一行遵循以下语法的单元格:

随机文本值(随机随机文本

我有一个VB脚本来使用正则表达式拆分文本:

Public Function SplitRe(text As String, pattern As String, Optional ignorecase As Boolean) As String()
Static re As Object
If re Is Nothing Then
Set re = CreateObject("VBScript.RegExp")
re.Global = True
re.MultiLine = True
End If
re.ignorecase = ignorecase
re.pattern = pattern
SplitRe = Strings.Split(re.Replace(text, vbNullChar), vbNullChar)
End Function

我正在使用的分隔符:(VALUES)+(s+)+(.)+d+(,)

这会导致文本被拆分为:

随机文本

我试图实现的是在脚本找到分隔符后拆分文本,创建以下内容:

随机文本值(随机数

但是我找不到一种方法来适当地扩充我的脚本来做到这一点。有人看到解决方案吗?

没有正则表达式,也不拆分:

更快:

Left(text, InStrRev(text,",")) 'Truncate string after last comma

更安全(假设VALUES (在前randomtext中没有发生(:

Left(text, InStr(InStr(text,"VALUES ("),text,",")) 'Truncate string after comma which is after "VALUE ("

最新更新