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个匹配: ABCDE678
和9
。
如果要validation应该有最小或最大字符数的string,则需要使用锚 ,即string断言的起始和结束^
和$
。 所以,使用
Dim strPattern As String: strPattern = "^[a-zA-Z0-9_]{1,8}$"
和
.Global = False
全局标志是没有必要的,因为我们不是在寻找多个匹配,而是一个单一的真正的或错误的结果与test
。