INFORMIX MATCHES的使用详解

MATCHES  运算符返回 TRUE ,如果一个字符串与给定的掩码匹配。

语法 
expr  [NOT]  MATCHES  mask   [ ESCAPE "char" ]
 

expr是任何字符串表达式。
mask 是定义过滤器的字符串表达式。
char是指定转义符号的单个字符。
用法
该mask 可以是字符的任意组合,其中包括 *, ?, [, ], - 和 ^ 通配符:

该 * 星号字符匹配零个或多个字符的任何字符串。
该 ? 问号匹配任何单个字符。
该 [] 括号匹配任何封闭的字符。
在 []内, - (连字符)表示一系列字符。
在 []内, ^ 不能匹配列出的一系列字符,与“-“相反。
ESCAPE子句可用于定义不同于默认反斜杠的转义字符。它必须用单引号或双引号括起来。

反斜线(或由 逃逸子句)使操作符将下一个字符视为文字字符,即使它是掩码列表中的特殊符号之一。这使您可以搜索通配符charachers,如*, ?, [, ] 要么 。

如果您需要转义通配符,请记住,字符串常量也必须转义反斜杠字符。因此,如果要将反斜杠传递给MATCHES运算符(通过使用反斜杠作为默认转义字符),则需要在原始字符串常量中写入四个反斜杠。

下表显示了源代码中使用的字符串常量及其类似的一些示例 模式:

表1.源代码中使用的字符串常量及其等价的 MATCHES 模式
原始字符串 等价的MATCHES模式    描述
“*”                  *               匹配非空字符串中的任何字符。
“?”             ?                匹配单个字符。
“abc *”      abc *              以abc开始。
“* abc”      * abc              以abc结束。
“*abc *”    *abc *             包含abc。
“abc??”   abc??          以abc开始,接着是两个附加字符。
“[az] *”      [az] *              以范围a到z中的字母开头。
“[^ 0-9] *”   [^ 0-9] *   不得以数字开头。
“\ *”                 *                 包含单个星号(*通配符被转义)
“*abc \\def*” * abc \ def *  包含abc后跟反斜杠,后跟def(反斜杠被转义)

样例:

MAIN

IF "55f-plot" MATCHES "55[a-z]-*" THEN
DISPLAY "Item reference format is correct."
END IF
END MAIN

原文地址:https://www.cnblogs.com/cjtds/p/8379611.html