1.with结构。以下语句用来提取A列中的“成品”两个字前面的部分的中文,不含成品两个字,结果存放在第2列。使用了On Error Resume Next,表示错误时继续下一条。
Sub 提取口味()
Set regx = CreateObject("vbscript.regexp")
On Error Resume Next
With regx
.Global = True
.Pattern = "[\u4e00-\u9fa5]+(?=成品)"
For Each rg In Range([a1], Columns(1).End(xlDown))
Set k = .Execute(rg)
Cells(rg.Row, 2) = k(Row)
Next
End With
End Sub
二.提取汉字或数字,分别存放在指定单元格
Sub RegExpDemoSyntax()
Dim 正则, 结果集合, 结果
字符串 = Range("A2").Value
Set 正则 = CreateObject("vbscript.regexp")
正则.Pattern = "Name:(.*?),Phone:(\d+)"
'Global值为True返回所有符合要求的结果,反之只返回第一个符合要求的结果
正则.Global = True
'Execute(字符串)
Set 结果集合 = 正则.Execute(字符串)
If 结果集合.Count > 0 Then
i = 2
For Each 结果 In 结果集合
Range("B" & i) = 结果.submatches(0)
Range("C" & i) = 结果.submatches(1)
Range("D" & i) = 正则.Replace(字符串, "$1$2")
i = i + 1
Next
End If
Set 正则 = Nothing
End Sub
返回结果