net.sf.saxon.dotnet

Class DotNetRegularExpression

Implemented Interfaces:
RegularExpression, Serializable

public class DotNetRegularExpression
extends java.lang.Object
implements RegularExpression

A compiled regular expression implemented using the .NET regex package

Fields inherited from interface net.sf.saxon.regex.RegularExpression

NATIVE_SYNTAX, XML_SCHEMA_SYNTAX, XPATH_SYNTAX

Constructor Summary

DotNetRegularExpression(CharSequence regex, int xmlVersion, int syntax, CharSequence flags)
Create (compile) a regular expression

Method Summary

RegexIterator
analyze(CharSequence input)
Use this regular expression to analyze an input string, in support of the XSLT analyze-string instruction.
boolean
containsMatch(CharSequence input)
Determine whether the regular expression contains a match of a given string
static boolean
isCaseBlind(CharSequence inFlags)
Test whether the 'i' flag is set.
static boolean
isIgnoreWhitespace(CharSequence inFlags)
Test whether the 'x' flag is set.
boolean
matches(CharSequence input)
Determine whether the regular expression matches a given string
CharSequence
replace(CharSequence input, CharSequence replacement)
Replace all substrings of a supplied input string that match the regular expression with a replacement string.
static RegexOptions
setFlags(CharSequence inFlags)
Set the Java flags from the supplied XPath flags.
SequenceIterator
tokenize(CharSequence input)
Use this regular expression to tokenize an input string.

Constructor Details

DotNetRegularExpression

public DotNetRegularExpression(CharSequence regex,
                               int xmlVersion,
                               int syntax,
                               CharSequence flags)
            throws XPathException
Create (compile) a regular expression
Parameters:
regex - the source text of the regular expression, in XML Schema or XPath syntax
xmlVersion - indicates whether XML 1.0 or XML 1.1 is in use
syntax - indicates whether this is an XPath regular expression, an XML Schema regular expression, or a regex in .NET native regex syntax
flags - the flags argument as supplied to functions such as fn:matches(), in string form
Throws:
XPathException - if the syntax of the regular expression or flags is incorrect

Method Details

analyze

public RegexIterator analyze(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

containsMatch

public boolean containsMatch(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

isCaseBlind

public static boolean isCaseBlind(CharSequence inFlags)
Test whether the 'i' flag is set.
Parameters:
inFlags - the flags as a string, e.g. "im"
Returns:
true if the 'i' flag is set

isIgnoreWhitespace

public static boolean isIgnoreWhitespace(CharSequence inFlags)
Test whether the 'x' flag is set.
Parameters:
inFlags - the flags as a string, e.g. "im"
Returns:
true if the 'x' flag is set

matches

public boolean matches(CharSequence input)
Determine whether the regular expression matches a given string
Specified by:
matches in interface RegularExpression
Parameters:
input - the string to match
Returns:
true if the string matches, false otherwise

replace

public CharSequence replace(CharSequence input,
                            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

setFlags

public static RegexOptions setFlags(CharSequence inFlags)
            throws XPathException
Set the Java flags from the supplied XPath flags.
Parameters:
inFlags - the flags as a string, e.g. "im"
Returns:
the flags as a RegexOptions FlagsAttribute
Throws:
XPathException - if the supplied value is invalid

tokenize

public SequenceIterator tokenize(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