0
我有一個超級搞砸的數據集,沒有真正的模式,我需要的是從3到7位數字找到數字序列,這是我一直在嘗試但匹配。計數總是給數據集的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/Guaiba 25.802; 24.052/Guaiba 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
使用逗號而不是連字符:'\ d {3,7}' – trincot
@trincot喔糟 – Mojimi
[此網站](http://regexr.com /)有助於測試你的字符串 – Sgdva