Class 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