我有一个超级搞砸的数据集,没有真正的模式,我需要的是找到3到7位的数字序列,这是我一直在尝试但匹配.Count总是给0
Function catchNumbers(inSt As String)
Dim regex As Object, str As String
Set regex = CreateObject("VBScript.RegExp")
With regex
.Pattern = "\d{3-7}"
.Global = True '
.IgnoreCase = True
End With
inSt = Replace(inSt, ".", "")
Set matches = regex.Execute(inSt)
Debug.Print (matches.Count())
If matches.Count() > 0 Then
For Each StrFound In matches
Debug.Print (TypeName(StrFound) & " : " & StrFound)
str = str & " " & StrFound
Next StrFound
Else
str = ""
End If
If Left(str, 1) = " " Then
str = Right(str, Len(str) - 1)
End If
Debug.Print (str)
catchNumbers = str
End Function
数据集示例:
25.802; 24.052 /瓜伊巴 25.802; 24.052 /瓜伊巴 25.859,L。3-Ac,Fls.5; 25.862,L。3-Ac,Fls。 6; 25.865,L。3-Ac,Fls。 7; 25.856,L。3-Ac,Fls。 4 25.859,L。3-Ac,Fls.5; 25.862,L。3-Ac,Fls。 6; 25.865,L。3-Ac,Fls。 7; 25.856,L。3-Ac,Fls。 4
答案 0 :(得分:2)
使用逗号代替连字符:\d{3,7}