正则表达式按顺序查找所有数字

时间:2016-06-09 21:21:57

标签: regex vba excel-vba excel

我有一个超级搞砸的数据集,没有真正的模式,我需要的是找到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

1 个答案:

答案 0 :(得分:2)

使用逗号代替连字符:\d{3,7}