fn:matches 函数确定字符串是否与特定模式相匹配。
>>-fn:matches(source-string,pattern-+--------+-)--------------->< '-,flags-'
source-string 是 xs:string 值或空序列。
pattern 是 xs:string 值。
如果未指定标志,那么点(.)与换行符(X'0A')以外的任意字符相匹配。
如果未指定 m 标志,那么插入标记(^)与字符串的开头相匹配,并且美元符号($)与字符串结尾相匹配。
如果未指定 i 标志,那么会执行区分大小写匹配。
如果未指定 x 标志,那么空格字符会用于匹配。
source-string 和 pattern 的长度不能超过 32000 个字节。
如果 source-string 并非空序列,并且 source-string 与 pattern 相匹配,那么返回的值为 true。如果 source-string 与 pattern 不匹配,那么返回的值为 false。
如果 pattern 未包含字符串起始字符或行起始字符插入标记(^)或者字符串结束字符或行结束字符美元符号($),并且 source-string 的任意子串与 pattern 相匹配,那么 source-string 与 pattern 相匹配。如果 pattern 包含字符串起始字符或行起始字符插入标记(^)或者字符串结束字符或行结束字符美元符号($),那么仅当 source-string 与 source-string 开头或 source-string 中某行开头的 pattern 相匹配时,source-string 才与 pattern 相匹配。如果 pattern 包含字符串结束字符或行结束字符美元符号($),那么仅当 source-string 与 source-string 结尾或 source-string 中某行结尾的 pattern 相匹配时,source-string 才与 pattern 相匹配。m 标志用于确定字符串开头或某行开头是否存在匹配。
如果 source-string 是空序列,那么返回的值为 false。
fn:matches("abbcacadbdcd","(ac)|(bd)")
返回的值为 true。
fn:matches("bd","^(ac)|(bd)$")
返回的值为 true。
fn:matches("abc1234","ABC 1234", "ix")
返回的值为 true。