有一个我似乎无法击败的问题。尝试了各种inStr方法等,但没有运气。
所以我有一个字符串,其中包含“texttext email@email.com 12/12/2015 1234567891 PST”
问题是我需要提取“1234567891”,因为它是数字,而且有10个,文本中没有永久位置,每次都可以在不同的地方。
有办法做到这一点吗?我的搜索让我将字符串拆分为“”,但我无法弄清楚如何将数字与“##########”格式进行比较以获得结果。
答案 0 :(得分:4)
考虑:
Sub whatever()
s = "texttext email@email.com 12/12/2015 1234567891 PST"
ary = Split(s, " ")
For Each a In ary
If IsNumeric(a) And Len(a) = 10 Then MsgBox a
Next a
End Sub
答案 1 :(得分:2)
作为我评论的附录,
Function tenDigits(str As String)
Static rgx As Object
If rgx Is Nothing Then
Set rgx = CreateObject("VBScript.RegExp")
End If
With rgx
.Global = False
.Pattern = "[0-9]{10}"
If .Test(str) Then tenDigits = .Execute(str)(0)
End With
End Function
请注意,长度由大括号括起,而不是我最初所说的大括号。