VBA Excel - 需要一个在字符串中查找模式数据的函数

时间:2016-07-06 15:59:09

标签: excel vba

我想知道是否有一个函数会拉出一个匹配某个模式的字符串。我现在正试图解决这个问题:“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

1 个答案:

答案 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