Package net.sf.saxon.regex

## Class ARegularExpression

- java.lang.Object
- - net.sf.saxon.regex.ARegularExpression

- All Implemented Interfaces:
    `RegularExpression`

      public class ARegularExpression
      extends java.lang.Object
      implements RegularExpression

  Glue class to interface the Jakarta regex engine to Saxon (The prefix 'A' indicates an Apache regular expression, as distinct from a JDK regular expression).

- - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `ARegularExpression​(java.lang.CharSequence pattern, java.lang.String flags, java.lang.String hostLanguage, java.util.List<java.lang.String> warnings, Configuration config)` | Create and compile a regular expression

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `RegexIterator` | `analyze​(java.lang.CharSequence input)` | Use this regular expression to analyze an input string, in support of the XSLT analyze-string instruction.
    `static ARegularExpression` | `compile​(java.lang.String pattern, java.lang.String flags)` | Static factory method intended for simple static regular expressions known to be correct
    `boolean` | `containsMatch​(java.lang.CharSequence input)` | Determine whether the regular expression contains a match of a given string
    `java.lang.String` | `getFlags()` | Get the flags used at the time the regular expression was compiled.
    `boolean` | `matches​(java.lang.CharSequence input)` | Determine whether the regular expression matches a given string in its entirety
    `java.lang.CharSequence` | `replace​(java.lang.CharSequence input, java.lang.CharSequence replacement)` | Replace all substrings of a supplied input string that match the regular expression with a replacement string.
    `java.lang.CharSequence` | `replaceWith​(java.lang.CharSequence input, java.util.function.Function<java.lang.CharSequence,​java.lang.CharSequence> replacer)` | Replace all substrings of a supplied input string that match the regular expression with a replacement string.
    `AtomicIterator` | `tokenize​(java.lang.CharSequence input)` | Use this regular expression to tokenize an input string.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### ARegularExpression

          public ARegularExpression​(java.lang.CharSequence pattern,
                                    java.lang.String flags,
                                    java.lang.String hostLanguage,
                                    java.util.List<java.lang.String> warnings,
                                    Configuration config)
                             throws XPathException

      Create and compile a regular expression
      Parameters:
        `pattern` - the regular expression
        `flags` - the flags (ixsmq)
        `hostLanguage` - one of "XP20", "XP30", "XSD10", "XSD11". Also allow combinations, e.g. "XP20/XSD11".
        `warnings` - a list to be populated with any warnings arising during compilation of the regex
        `config` - the Saxon Configuration: may be null
      Throws:
        `XPathException` - if the regular expression is invalid

  - ### Method Detail

    - #### compile

          public static ARegularExpression compile​(java.lang.String pattern,
                                                   java.lang.String flags)

      Static factory method intended for simple static regular expressions known to be correct
      Throws:
        `java.lang.IllegalArgumentException` - if the pattern or flags are incorrect

    - #### matches

          public boolean matches​(java.lang.CharSequence input)

      Determine whether the regular expression matches a given string in its entirety
      Specified by:
        `matches` in interface `RegularExpression`
      Parameters:
        `input` - the string to match
      Returns:
        true if the string matches, false otherwise

    - #### containsMatch

          public boolean containsMatch​(java.lang.CharSequence input)

      Determine whether the regular expression contains a match of a given string
      Specified by:
        `containsMatch` in interface `RegularExpression`
      Parameters:
        `input` - the string to match
      Returns:
        true if the string matches, false otherwise

    - #### tokenize

          public AtomicIterator tokenize​(java.lang.CharSequence input)

      Use this regular expression to tokenize an input string.
      Specified by:
        `tokenize` in interface `RegularExpression`
      Parameters:
        `input` - the string to be tokenized
      Returns:
        a SequenceIterator containing the resulting tokens, as objects of type StringValue

    - #### analyze

          public RegexIterator analyze​(java.lang.CharSequence input)

      Use this regular expression to analyze an input string, in support of the XSLT analyze-string instruction. The resulting RegexIterator provides both the matching and non-matching substrings, and allows them to be distinguished. It also provides access to matched subgroups.
      Specified by:
        `analyze` in interface `RegularExpression`
      Parameters:
        `input` - the character string to be analyzed using the regular expression
      Returns:
        an iterator over matched and unmatched substrings

    - #### replace

          public java.lang.CharSequence replace​(java.lang.CharSequence input,
                                                java.lang.CharSequence replacement)
                                         throws XPathException

      Replace all substrings of a supplied input string that match the regular expression with a replacement string.
      Specified by:
        `replace` in interface `RegularExpression`
      Parameters:
        `input` - the input string on which replacements are to be performed
        `replacement` - the replacement string in the format of the XPath replace() function
      Returns:
        the result of performing the replacement
      Throws:
        `XPathException` - if the replacement string is invalid

    - #### replaceWith

          public java.lang.CharSequence replaceWith​(java.lang.CharSequence input,
                                                    java.util.function.Function<java.lang.CharSequence,​java.lang.CharSequence> replacer)
                                             throws XPathException

      Replace all substrings of a supplied input string that match the regular expression with a replacement string.
      Specified by:
        `replaceWith` in interface `RegularExpression`
      Parameters:
        `input` - the input string on which replacements are to be performed
        `replacer` - the replacement string in the format of the XPath replace() function
      Returns:
        the result of performing the replacement
      Throws:
        `XPathException` - if the replacement string is invalid

    - #### getFlags

          public java.lang.String getFlags()

      Get the flags used at the time the regular expression was compiled.
      Specified by:
        `getFlags` in interface `RegularExpression`
      Returns:
        a string containing the flags