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
Saxon availability
Available in XPath 2.0, XSLT 2.0, XQuery 1.0, and later versions. Available in all Saxon editions.
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:
-
j
- Use the standard Java regular expression engine, allowing native Java regex syntax. This allows, for example, the use of "\b" in a regular expression to match word boundaries.If used with SaxonCS, the
j
flag is treated as ifn
were specified. -
n
- Use the standard .NET regular expression engine, allowing native .NET regex syntax. This is supported in SaxonCS only. -
g
- Switch on diagnostics. Not currently used. -
k
- Treat unknown Unicode block names as matching any character (this is the default for XSD 1.1). This option applies to the Saxon regular expression engine only. -
K
- Treat unknown Unicode block names as an error (this is the default for XSD 1.0 and for XPath/XSLT/XQuery). This option applies to the Saxon regular expression engine only.
In the case of fn:replace(), if the platform-native regex engine is used
(Java or .NET) then the syntax for the replacement expression in the third argument also
follows the rules for the platform. For example, the syntax ${name}
can be used
in a reference to a named captured group.