Visual Basic Excel正则expression式{}

我遇到了一些问题{}。 当我得到像这样的最大值{1,8}它不起作用,我现在不是为什么。 敏谷是有效的

Private Sub Highlvl_Expression() Dim strPattern As String: strPattern = "[a-zA-Z0-9_]{1,8}" Dim strReplace As String: strReplace = "" Dim regEx As New RegExp Dim Test As Boolean With regEx .Global = True .MultiLine = True .IgnoreCase = False .Pattern = strPattern End With Test = regEx.Test(Highlvl.Value) If regEx.Test(Highlvl.Value) Then MsgBox ("Validate") Else MsgBox ("Not Validate") End If End Sub 

您指定了在string内查找1到8个字母数字字符的模式。 如果对9个字符的string"ABCDE6789"regEx.Execute("ABCDE6789") )运行正则expression式,则会有2个匹配: ABCDE6789

如果要validation应该有最小或最大字符数的string,则需要使用 ,即string断言的起始和结束^$ 。 所以,使用

 Dim strPattern As String: strPattern = "^[a-zA-Z0-9_]{1,8}$" 

 .Global = False 

全局标志是没有必要的,因为我们不是在寻找多个匹配,而是一个单一的真正的或错误的结果与test