如果字符串包含长(+10位)数字,则返回true

时间:2017-12-21 11:31:07

标签: regex vba excel-vba excel

我想检查提供的字符串是否包含超过十位的数字。

exampleString = aaa123aaa12345aaaa   <--- not true
exampleString = 12345678   <--- not true
exampleString = 1234567,12345,123345   <--- not true
exampleString = aaaa12345678901234aaaa124aaa <-- true

我试图做一些事情,比如将数字提取到单个字符串,然后检查它们的长度&gt; 10,但我没有成功。

任何帮助或建议?

3 个答案:

答案 0 :(得分:3)

一个简单的Like怎么样?

if str like "*###########*" then ...

答案 1 :(得分:1)

Function IsMore10Digits(strVal)
    With CreateObject("VBScript.RegExp")
        .Pattern = "\d{11,}": IsMore10Digits = .Test(strVal)
    End With
End Function

答案 2 :(得分:0)

使用RegEx对象:

Option Explicit

Sub TestReg()

' sub to test RegEx10Digits function

Dim exampleString   As String

exampleString = "aaaa12345678901234aaaa124aaa"
MsgBox RegEx10Digits(exampleString)

End Sub
Function RegEx10Digits(RegString As String) As Boolean

' RegEx variables
Dim Reg As Object
Dim RegMatches As Variant

RegEx10Digits = False

Set Reg = CreateObject("VBScript.RegExp")
With Reg
    .Global = True
    .IgnoreCase = True
    .Pattern = "\d{11,}" ' Match any set of 10+  digits
End With

Set RegMatches = Reg.Execute(RegString)
If RegMatches.Count >= 1 Then ' make sure there is at least 1 match
    RegEx10Digits = True
End If

End Function