Excel – 在VBA中使用正则expression式分割单元格,保留分隔符
我在Excel中有一行单元格,它遵循以下语法:
随机文本值( randomnumber , randomtext ,
我有一个VB脚本使用正则expression式分割文本:
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+(,)
这导致文本被拆分为:
randomtext
我想要实现的是在脚本find分隔符后分割文本,创build这个:
随机文本值( 随机 数 ,
但我找不到一种方法来正确地增加我的脚本来这样做。 任何人都看到解决scheme
没有正则expression式既不分裂:
更快:
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 ("