Regex 正则表达式以查找序列中的所有数字

Regex 正则表达式以查找序列中的所有数字,regex,vba,excel,Regex,Vba,Excel,我有一个超级混乱的数据集,没有真正的模式,我需要从中找到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 = Tr

我有一个超级混乱的数据集,没有真正的模式,我需要从中找到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,第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,第5层;25.862,L.3-Ac,Fls。6.25.865,L.3-Ac,Fls。7.25.856,L.3-Ac,Fls。四,


使用逗号而不是连字符:
\d{3,7}
使用逗号而不是连字符:
\d{3,7}
使用逗号而不是连字符:
\d{3,7}
有助于测试字符串。我将标题完全理解为一个正则表达式来管理它们,一个正则表达式找到它们,一个正则表达式带来它们,用逗号代替连字符:
\d{3,7}
有助于测试你的字符串。我完全把标题读成一个正则表达式来统治它们,一个正则表达式来找到它们,一个正则表达式把它们全部带到,在黑暗中绑定它们。好的,也许不是。