如何:将字符串与模式匹配 (Visual Basic)

如果想要了解 字符串数据类型 的表达式是否满足模式,则可以使用 Like 运算符

Like 采用两个操作数。 左侧作数是字符串表达式,右侧作数是包含要用于匹配的模式的字符串。 Like 返回一个 Boolean 值,该值指示字符串表达式是否满足模式。

可以将字符串表达式中的每个字符与特定字符、通配符、字符列表或字符范围匹配。 模式字符串中规范的位置对应于字符串表达式中要匹配的字符的位置。

将字符串表达式中的字符与特定字符匹配

将特定字符直接置于模式字符串中。 某些特殊字符必须括在括号中([ ])。 有关详细信息,请参阅 运算符 Like

下面的示例测试是否 myString 完全由单个字符 H组成。

Dim sMatch As Boolean = myString Like "H"

将字符串表达式中的字符与通配符匹配

将问号 (?) 放在模式字符串中。 此位置中的任何有效字符都使匹配成功。

下面的示例测试 myString 是否恰好由单个字符 W 加任意值的两个字符组成。

Dim sMatch As Boolean = myString Like "W??"

将字符串表达式中的字符与字符列表匹配

将方括号 ([ ]) 置于模式字符串中,并在括号内放置字符列表。 不要用逗号或任何其他分隔符分隔字符。 列表中的任何单个字符都成功匹配。

以下示例测试 myString 是否恰好由任何有效字符加以下一个字符 ACE 组成。

Dim sMatch As Boolean = myString Like "?[ACE]"

请注意,此匹配区分大小写。

将字符串表达式中的字符与一系列字符匹配

将方括号([ ])放在图案字符串中,括号内将最低字符和最高字符置于范围中,用连字符() 分隔。 范围内的任何单个字符都成功匹配。

以下示例测试是否myString由字符num组成,并且后面恰好跟随其中一个字符ijklmn

Dim sMatch As Boolean = myString Like "num[i-m]"

请注意,此匹配区分大小写。

匹配空字符串

Like 将序列 [] 视为零长度字符串 ("")。 可用于 [] 测试整个字符串表达式是否为空,但不能使用它来测试字符串表达式中的某个特定位置是否为空。 如果空位置是需要测试的选项之一,则可以多次使用 Like

将字符串表达式中的字符与字符列表或无字符匹配

  1. 在同 Like 一字符串表达式上调用运算符两次,并使用 Or 运算符OrElse 运算符连接这两个调用。

  2. 在第一个 Like 子句的模式字符串中,包括括在方括号中的字符列表([ ])。

  3. 在第二 Like 个子句的模式字符串中,不要在所涉及的位置放置任何字符。

    以下示例测试七位数电话号码 phoneNum 是否恰好由三个数字加空格、连字符 ()、句号 (.) 或完全无字符,然后刚好加四个数字组成。

    Dim sMatch As Boolean = 
      (phoneNum Like "###[ -.]####") OrElse (phoneNum Like "#######")
    

另请参阅