如何:将字符串与模式相匹配 (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 "#######")
    

另请参阅