matches 函数
fn:matches 函数确定字符串是否与特定模式匹配。
语法
- source-string
- 与模式进行比较的字符串。
source-string 是 xs:string 值或空序列。
- pattern
- 要与 source-string 进行比较的正则表达式。 正则表达式是用于在搜索模式中定义一个或一组字符串的字符、通配符和运算符集合。
pattern 是 xs:string 值。
- flags
- 一个 xs:string 值,可包含下列用于控制 pattern 与 source-string 的匹配情况的任何值:
- s
- 指示点 (.) 与任意字符相匹配。
如果未指定标志,那么点 (.) 与换行符 (X'0A') 以外的任意字符相匹配。
- m
- 指示插入标记 (^) 与行的开头(换行符之后的位置)相匹配,并且美元符号 ($) 与行结尾(换行符之前的位置)相匹配。
如果未指定 m 标志,那么插入标记 (^) 与字符串的开头相匹配,并且美元符号 ($) 与字符串结尾相匹配。
- i
- 标识匹配是不区分大小写的。
如果未指定 i 标志,那么会执行区分大小写匹配。
- x
- 指示 pattern 中的空格字符会被忽略。
如果未指定 x 标志,那么空格字符会用于匹配。
- Limitation of length
source-string 和 pattern 的长度不能超过 32000 个字节。
返回的值
如果 source-string 并非空序列,并且 source-string 与 pattern 相匹配,那么返回的值为 true。 如果 source-string 与 pattern 不匹配,那么返回的值为 false。
如果 模式 不包含字符串或行开始字符插入标记 (^) 或字符串或行结束字符美元符号 ($) ,那么 source-string 匹配 模式 (如果 source-string 的任何子串匹配 模式)。 如果 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。
