fn:matches

Returns true if the given string matches the given regular expression.

matches($input as xs:string?, $pattern as xs:string) ➔ xs:boolean

Arguments

 

$input

xs:string?

The string to be matched against a regular expression

 

$pattern

xs:string

The regular expression

Result

xs:boolean

matches($input as xs:string?, $pattern as xs:string, $flags as xs:string) ➔ xs:boolean

Arguments

 

$input

xs:string?

The string to be matched against a regular expression

 

$pattern

xs:string

The regular expression

 

$flags

xs:string

Flags that control the interpretation of the regular expression

Result

xs:boolean

Namespace

http://www.w3.org/2005/xpath-functions

Links to W3C specifications

XPath 3.1 Functions and Operators

Notes on the Saxon implementation

Saxon 9.3 introduced support for the q flag, and for XPath 3.0 regular expression enhancements, provided XPath 3.0 is enabled.

Saxon implements some extensions to the flags argument. The value of this argument contains the standard flags defined in the spec (i, m, s, x, q) followed optionally by a semicolon and then Saxon-specific flags. The Saxon-specific flags are:

For Saxon 10 and earlier releases, if the platform-native regex engine is used (Java or .NET) then the syntax for the replacement expression in the third argument of fn:replace() still follows the XPath rules, not the platform native rules. This means, for example, that the syntax ${name} cannot be used in a reference to a named captured group. This will change in Saxon 11 so the replacement string follows the platform native rules. (On .NET this means that a literal '$' sign is escaped as '\$' in Saxon 10, but as '$$' in Saxon 11).