excel中正则表达式的匹配函数?

时间:2013-11-05 08:28:28

标签: regex excel vba excel-2010

我的工作表中有几个包含ISIN的单元格。

以下是ISIN的示例:DE0006231004

我创建了一个与ISIN匹配的正则表达式: ^[a-zA-Z]{2}[0-9]{10}$

我希望在我的单元格上匹配此正则表达式,如果匹配,则给出1,否则为0。

这是否可以通过功能实现?

2 个答案:

答案 0 :(得分:4)

以下功能可以满足您的需求。如果字符串不匹配,它将返回0(零),如果字符串与模式匹配,则返回1(一)。

Function MatchISIN(ISIN As String)

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

    regEx.Pattern = "^[a-zA-Z]{2}[0-9]{10}$"
    regEx.IgnoreCase = True
    regEx.Global = True

    Dim Matches As Object
    Set Matches = regEx.Execute(ISIN)

    MatchISIN = Matches.Count

End Function

答案 1 :(得分:1)

您可以使用内置的Like方法;

if "DE0006231009" like "[A-Za-z][A-Za-z]##########" then ...