在字符串比较中使用通配符

适用于:Access 2013、Office 2013

内置的模式匹配方法提供了一个用于字符串比较的通用工具。 下表中展示了可以用于 Like 运算符的通配符,以及与它们匹配的数字和字符串。

pattern 中的字符

expression 中的匹配项

? 或 _(下划线)

任意单个字符

* 或 %

零个或多个字符

#

任何单个数字 (0 - 9)

[charlist]

charlist 中的任何单个字符。

[!charlist]

不在 charlist 中的任何单个字符。

可以使用一组由中括号 ([]) 括起来的一个或多个字符 (charlist) 来匹配 expression 中的任何单个字符,并且 charlist 几乎可以包含 ANSI 字符集中的所有字符(包括数字)。 只有当左方括号 ([)、问号 (?)、数字号 (#) 和星号 (*) 等特殊字符位于括号中时,才能使用这些字符直接与其自身进行匹配。 不能在组中将右方括号与其自身匹配,但可以将其作为单个字符用于组外。

除了括在括号中的字符的简单列表外, charlist 还可以通过使用连字符 ( ) 来分隔范围的上限和下限来指定字符范围。 例如,如果在 模式 中使用 [A-Z],则 表达式 中的相应字符位置包含 A 到 Z 范围中的任何大写字母,则会导致匹配。可以在括号中包含多个区域,而无需分隔区域。 例如,[a-zA-Z0-9] 匹配任何字母数字字符。

请务必注意,ANSI SQL 通配符 (%) 和 (_) 仅适用于 Microsoft Jet 版本 4.X 和 Microsoft OLE DB Provider for Jet。 如果用于 Microsoft Access 或 DAO,则被视为文本。

用于模式匹配的其他重要规则如下所示:

  • charlist 开头的感叹号 (!) 表示:如果在 expression 中发现的字符不在 charlist 中,则进行匹配。 在括号外使用感叹号时,感叹号匹配其本身。

  • 可以将连字符 (-) 用于 charlist 的开头(如果用了感叹号,则放在感叹号之后)或末尾以便与其自身匹配。 如果用于任何其他位置,则标识 ANSI 字符的范围。

  • 指定一系列字符时,这些字符必须以升序排序次序显示(A-Z 或 0-100)。 [A-Z] 是有效模式,而 [Z-A] 是无效模式。

  • 将忽略字符顺序 [ ];该顺序被视为一个零长度字符串 ("")。