## net.sf.saxon.functions
Class Matches

    java.lang.Object
      net.sf.saxon.expr.Expression
          net.sf.saxon.expr.FunctionCall
              net.sf.saxon.functions.SystemFunction
                  net.sf.saxon.functions.Matches

All Implemented Interfaces:
  java.io.Serializable, javax.xml.transform.SourceLocator, LocationProvider, SaxonLocator, EvaluableItem, SequenceIterable, InstructionInfo, org.xml.sax.Locator

    public class Matches

extends SystemFunction

This class implements the matches() function for regular expression matching

See Also:
  Serialized Form

Field Summary

Fields inherited from class net.sf.saxon.functions.SystemFunction
`operation`

Fields inherited from class net.sf.saxon.expr.FunctionCall
`argument`

Fields inherited from class net.sf.saxon.expr.Expression
`EVALUATE_METHOD, ITERATE_METHOD, locationId, PROCESS_METHOD, staticProperties`

Constructor Summary
`Matches()`

Method Summary
`Item` `evaluateItem(XPathContext c)` Evaluate the matches() function to give a Boolean value.
`RegularExpression` `getCompiledRegularExpression()` Get the compiled regular expression, returning null if the regex has not been compiled
`Expression` `optimize(ExpressionVisitor visitor, ItemType contextItemType)` Perform optimisation of an expression and its subexpressions.
`Expression` `simplify(ExpressionVisitor visitor)` Simplify and validate.
`static RegularExpression` `tryToCompile(Expression[] args, int patternArg, int flagsArg, StaticContext env)` Try to precompile the arguments to the function.

Methods inherited from class net.sf.saxon.functions.SystemFunction
`addContextDocumentArgument, addDocToPathMap, checkArguments, computeCardinality, computeSpecialProperties, copy, getDetails, getErrorCodeForTypeErrors, getItemType, getRequiredType, makeSystemFunction, setDetails, useContextItemAsDefault`

Methods inherited from class net.sf.saxon.expr.FunctionCall
`addExternalFunctionCallToPathMap, checkArgumentCount, equals, explain, getArguments, getDisplayName, getFunctionName, getNumberOfArguments, hashCode, iterateSubExpressions, preEvaluate, promote, replaceSubExpression, setArguments, setFunctionName, simplifyArguments, toString, typeCheck`

Methods inherited from class net.sf.saxon.expr.Expression

`addToPathMap, adoptChildExpression, checkForUpdatingSubexpressions, checkPermittedContents, computeDependencies, computeStaticProperties, display, doPromotion, dynamicError, effectiveBooleanValue, evaluateAsString, evaluatePendingUpdates, explain, findParentOf, getCardinality, getColumnNumber, getColumnNumber, getConstructType, getContainer, getDependencies, getExecutable, getHostLanguage, getImplementationMethod, getIntrinsicDependencies, getLineNumber, getLineNumber, getLocationId, getLocationProvider, getObjectName, getProperties, getProperty, getPublicId, getSlotsUsed, getSpecialProperties, getSystemId, getSystemId, hasLoopingSubexpression, implementsStaticTypeCheck, isUpdatingExpression, iterate, iterateEvents, markTailFunctionCalls, process, resetLocalStaticProperties, setContainer, setFiltered, setFlattened, setLocationId, staticTypeCheck, suppressValidation, typeError`

Methods inherited from class java.lang.Object
`clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

Constructor Detail

### Matches

    public Matches()

Method Detail

### simplify

    public Expression simplify(ExpressionVisitor visitor)
                        throws XPathException

  Simplify and validate. This is a pure function so it can be simplified in advance if the arguments are known

  Overrides:
    `simplify` in class `FunctionCall`
  Parameters:
    `visitor` - an expression visitor
  Returns:
    the simplified expression
  Throws:
    `XPathException` - if any error is found (e.g. invalid regular expression)

### optimize

    public Expression optimize(ExpressionVisitor visitor,
                               ItemType contextItemType)
                        throws XPathException

  Perform optimisation of an expression and its subexpressions.

  This method is called after all references to functions and variables have been resolved to the declaration of the function or variable, and after all type checking has been done.

  Overrides:
    `optimize` in class `SystemFunction`
  Parameters:
    `visitor` - an expression visitor
    `contextItemType` - the static type of "." at the point where this expression is invoked. The parameter is set to null if it is known statically that the context item will be undefined. If the type of the context item is not known statically, the argument is set to `Type.ITEM_TYPE`
  Returns:
    the original expression, rewritten if appropriate to optimize execution
  Throws:
    `XPathException` - if an error is discovered during this phase (typically a type error)

### getCompiledRegularExpression

    public RegularExpression getCompiledRegularExpression()

  Get the compiled regular expression, returning null if the regex has not been compiled

  Returns:
    the compiled regular expression, or null

### evaluateItem

    public Item evaluateItem(XPathContext c)
                      throws XPathException

  Evaluate the matches() function to give a Boolean value.

  Specified by:
    `evaluateItem` in interface `EvaluableItem`
  Overrides:
    `evaluateItem` in class `Expression`
  Parameters:
    `c` - The dynamic evaluation context
  Returns:
    the result as a BooleanValue, or null to indicate the empty sequence
  Throws:
    `XPathException` - on an error

### tryToCompile

    public static RegularExpression tryToCompile(Expression[] args,
                                                 int patternArg,
                                                 int flagsArg,
                                                 StaticContext env)
                                          throws XPathException

  Try to precompile the arguments to the function. This method is shared by the implementations of the three XPath functions matches(), replace(), and tokenize().

  Parameters:
    `args` - the supplied arguments to the function, as an array
    `patternArg` - the position of the argument containing the regular expression
    `flagsArg` - the position of the argument containing the flags
    `env` - the static context
  Returns:
    the compiled regular expression, or null indicating that the information is not available statically so it cannot be precompiled
  Throws:
    `XPathException` - if any failure occurs, in particular, if the regular expression is invalid

Copyright (c) Saxonica Limited. All rights reserved.