Function baseReg(text As String, t As Integer) As String
Dim reg As Object
Dim mc As Object
Set reg = CreateObject("VBScript.RegExp")
With reg
.Global = True
If t = 1 Then
.Pattern = "\d+"
Else
.Pattern = "\D+"
End If
Set mc = .Execute(text)
If mc.Count > 0 Then
baseReg = mc(0)
Else
baseReg = ""
End If
End With
End Function
Function sumReg(text As String) As Double
Dim all As Double
Dim reg As Object
Dim mc As Object
Dim item As Object
Set reg = CreateObject("VBScript.RegExp")
reg.Global = True
reg.Pattern = "\d+(\.\d+)?"
Set mc = reg.Execute(text)
all = 0
For Each item In mc
all = all + CDbl(item.Value)
Next item
sumReg = all
End Function
Function allReg()
Dim reg As Object
Dim rng As Range
Dim item As Range
Dim mc As Object
Dim m As Object
Dim row As Long
Set reg = CreateObject("VBScript.RegExp")
reg.Global = False
reg.IgnoreCase = True
reg.Pattern = "([a-zA-Z]+\d*[a-zA-Z]*)([\u4e00-\u9fa5]+)(\d+)元(\d+)"
With Worksheets("数据")
Set rng = .Range("H2", .Cells(.Rows.Count, "H").End(xlUp))
row = 2
For Each item In rng
Set mc = reg.Execute(item.Value)
If mc.Count > 0 Then
Set m = mc(0)
Debug.Print m.SubMatches(3)
.Range("I" & row).Value = m.SubMatches(0)
.Range("J" & row).Value = m.SubMatches(1)
.Range("K" & row).Value = m.SubMatches(2)
.Range("L" & row).Value = m.SubMatches(3)
End If
row = row + 1
Next item
End With
End Function