DB2 10.5 for Linux, UNIX, and Windows

matches 函数

fn:matches 函数确定字符串是否与特定模式相匹配。

语法

阅读语法图跳过直观语法图
>>-fn:matches(source-string,pattern-+--------+-)---------------><
                                    '-,flags-'     

source-string
与模式进行比较的字符串。

source-string 是 xs:string 值或空序列。

pattern
要与 source-string 进行比较的正则表达式。正则表达式是用于在搜索模式中定义一个或一组字符串的字符、通配符和运算符集合。

pattern 是 xs:string 值。

flags
一个 xs:string 值,可包含下列用于控制 patternsource-string 的匹配情况的任何值:
s
指示点(.)与任意字符相匹配。

如果未指定标志,那么点(.)与换行符(X'0A')以外的任意字符相匹配。

m
指示插入标记(^)与行的开头(换行符之后的位置)相匹配,并且美元符号($)与行结尾(换行符之前的位置)相匹配。

如果未指定 m 标志,那么插入标记(^)与字符串的开头相匹配,并且美元符号($)与字符串结尾相匹配。

i
标识匹配是不区分大小写的。

如果未指定 i 标志,那么会执行区分大小写匹配。

x
指示 pattern 中的空格字符会被忽略。

如果未指定 x 标志,那么空格字符会用于匹配。

对于长度的限制

source-stringpattern 的长度不能超过 32000 个字节。

返回的值

如果 source-string 并非空序列,并且 source-stringpattern 相匹配,那么返回的值为 true。如果 source-stringpattern 不匹配,那么返回的值为 false。

如果 pattern 未包含字符串起始字符或行起始字符插入标记(^)或者字符串结束字符或行结束字符美元符号($),并且 source-string 的任意子串与 pattern 相匹配,那么 source-stringpattern 相匹配。如果 pattern 包含字符串起始字符或行起始字符插入标记(^)或者字符串结束字符或行结束字符美元符号($),那么仅当 source-stringsource-string 开头或 source-string 中某行开头的 pattern 相匹配时,source-string 才与 pattern 相匹配。如果 pattern 包含字符串结束字符或行结束字符美元符号($),那么仅当 source-stringsource-string 结尾或 source-string 中某行结尾的 pattern 相匹配时,source-string 才与 pattern 相匹配。m 标志用于确定字符串开头或某行开头是否存在匹配。

如果 source-string 是空序列,那么返回的值为 false。

示例

使模式与字符串中的任意子串相匹配的示例:以下函数确定字符“ac”或“bd”是否出现在字符串“abbcacadbdcd”中的任意位置。
fn:matches("abbcacadbdcd","(ac)|(bd)")

返回的值为 true。

使模式与整个字符串相匹配的示例:以下函数确定字符“ac”或“bd”是否与字符串“bd”相匹配。
fn:matches("bd","^(ac)|(bd)$")

返回的值为 true。

匹配模式时忽略空格和首字母大写的示例:以下函数使用 ix 标志,以在确定字符串“abc1234”是否与模式“ABC 1234”相匹配时忽略首字母大写和空格。
fn:matches("abc1234","ABC 1234", "ix")

返回的值为 true。