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