我想知道是否有一个函数会拉出一个匹配某个模式的字符串。我现在正试图解决这个问题:“C3-4”它位于一个字符串中,可以在多个不同的部分找到。字符串也会改变,例如它可能是L2-3,所以我需要这个函数,如果存在的话,能够识别一个模式,比如AX-X(A是一个字母,X是一个数字,而且 - 作为 - )任何帮助将不胜感激。很抱歉,如果问题含糊不清,我还没有任何程序可以帮助我做一个例子,因为我需要这个程序给我一个开始编程的基线。
=== EDIT ===
我已经能够想出这个,但是我认为我的模式是不正确的,当评估为“是”时评估为“否”:
Sub RegEx_Tester()
Set objRegExp_1 = CreateObject("vbscript.regexp")
objRegExp_1.Global = True
objRegExp_1.IgnoreCase = True
objRegExp_1.Pattern = "[TSCL][1-13]*-[1-13]"
strToSearch = "L5-1"
Set regExp_Matches = objRegExp_1.Execute(strToSearch)
If regExp_Matches.Count = 1 Then
MsgBox ("Yes")
Else
MsgBox ("No")
End If
End Sub
答案 0 :(得分:2)
试一试。
我稍微修改了模式。第一个分组需要单个字母字符,后跟数字可能是一个或两个数字,后跟一个破折号(用\ n转义,否则它在正则表达式中具有特殊含义),后跟单个字符数字。如果你没有看到我在这里所做的事情,请告诉我,我会尽力解释一下......
Sub RegEx_Tester()
Set objRegExp_1 = CreateObject("vbscript.regexp")
objRegExp_1.Global = True
objRegExp_1.IgnoreCase = True
objRegExp_1.Pattern = "[A-Z]{1}[0-9]{1,2}\-[0-9]{1}"
strToSearch = "L5-1"
Set regExp_Matches = objRegExp_1.Execute(strToSearch)
WScript.Echo regExp_Matches.Count
If regExp_Matches.Count = 1 Then
MsgBox ("Yes")
Else
MsgBox ("No")
End If
End Sub