如何使用RegEx匹配VBA中的简单数字模式

时间:2011-01-26 20:07:13

标签: regex vba

如何检查字符串是一位数字还是两位数字,否则返回false

5 个答案:

答案 0 :(得分:9)

怎么样:

Function OneOrTwo(i As Integer) As Boolean
Dim objRegEx As Object
Set objRegEx = CreateObject("VBScript.RegExp")
objRegEx.IgnoreCase = True
objRegEx.Global = True

objRegEx.Pattern = "^\d{1,2}$"

OneOrTwo = objRegEx.Test(i)
End Function

请参阅:http://msdn.microsoft.com/en-us/library/ms974570.aspx

答案 1 :(得分:7)

您也可以使用VBA LIKE执行此操作:

Function OneOrTwo(Digits As Variant) As Boolean
    OneOrTwo = Digits Like "#" Or Digits Like "##"
End Function

答案 2 :(得分:1)

IF CInt(myNumberString) < 100 Then
    MsgBox "String must be either 1 or 2 digits"
Else
    Msgbox "Failed"
End IF

应该适合你。

答案 3 :(得分:1)

Remou说得对。这是一个RegexContains函数,因此您可以将它与各种模式一起使用,而不仅仅是您现在需要的模式。

Function RegexContains(ByVal find_in As String, _
                       ByVal find_what As String, _
                       Optional IgnoreCase As Boolean = False) As Boolean

Dim RE As Object
Set RE = CreateObject("vbscript.regexp")

RE.Pattern = find_what
RE.IgnoreCase = IgnoreCase
RE.Global = True
RegexContains = RE.Test(find_in)

End Function

按照Remou的例子,假设单元格是A1,你会写:

= RegexContains(A1,“^ \ d {1,2} $”)

答案 4 :(得分:0)

这是我会尝试的。 / d表示数字,?选项2位数。

/ d / d?

/ d {1,2}