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:
-
j
- Use the standard Java regular expression engine, allowing native Java regex syntax. This is supported on both the Java platform and the .NET platform. This allows, for example, the use of "\b" in a regular expression to match word boundaries.Note: On the Java platform, this can also be achieved using the flag "!"; this was never formally supported and is likely to be withdrawn in a future Saxon version.
-
n
- Use the standard .NET regular expression engine, allowing native .NET regex syntax. This is supported on the .NET platform 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.
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).