net.sf.saxon.dotnet

Class DotNetRegexIterator

Implemented Interfaces:
RegexIterator, SequenceIterator

public class DotNetRegexIterator
extends java.lang.Object
implements RegexIterator

Class JRegexIterator - provides an iterator over matched and unmatched substrings. This implementation of RegexIterator uses the JDK regular expression engine.

Fields inherited from interface net.sf.saxon.om.SequenceIterator

GROUNDED, LAST_POSITION_FINDER, LOOKAHEAD

Constructor Summary

DotNetRegexIterator(String string, Regex pattern)
Construct a RegexIterator.

Method Summary

Item
current()
Get the current item in the sequence
SequenceIterator
getAnother()
Get another iterator over the same items
int
getProperties()
Get properties of this iterator, as a bit-significant integer.
String
getRegexGroup(int number)
Get a substring that matches a parenthesised group within the regular expression
SequenceIterator
getRegexGroupIterator()
Get a sequence containing all the regex groups (except group 0, because we want to use indexing from 1).
boolean
isMatching()
Determine whether the current item is a matching item or a non-matching item
Item
next()
Get the next item in the sequence
int
position()
Get the position of the current item in the sequence

Constructor Details

DotNetRegexIterator

public DotNetRegexIterator(String string,
                           Regex pattern)
Construct a RegexIterator. Note that the underlying matcher.find() method is called once to obtain each matching substring. But the iterator also returns non-matching substrings if these appear between the matching substrings.
Parameters:
string - the string to be analysed
pattern - the regular expression

Method Details

current

public Item current()
Get the current item in the sequence
Specified by:
current in interface SequenceIterator
Returns:
the item most recently returned by next()

getAnother

public SequenceIterator getAnother()
Get another iterator over the same items
Specified by:
getAnother in interface SequenceIterator
Returns:
a new iterator, positioned before the first item

getProperties

public int getProperties()
Get properties of this iterator, as a bit-significant integer.
Specified by:
getProperties in interface SequenceIterator
Returns:
the properties of this iterator. This will be some combination of properties such as SequenceIterator.GROUNDED, SequenceIterator.LAST_POSITION_FINDER, and SequenceIterator.LOOKAHEAD. It is always acceptable to return the value zero, indicating that there are no known special properties. It is acceptable for the properties of the iterator to change depending on its state.

getRegexGroup

public String getRegexGroup(int number)
Get a substring that matches a parenthesised group within the regular expression
Specified by:
getRegexGroup in interface RegexIterator
Parameters:
number - the number of the group to be obtained
Returns:
the substring of the current item that matches the n'th parenthesized group within the regular expression

getRegexGroupIterator

public SequenceIterator getRegexGroupIterator()
Get a sequence containing all the regex groups (except group 0, because we want to use indexing from 1). This is used by the saxon:analyze-string() higher-order extension function.
Specified by:
getRegexGroupIterator in interface RegexIterator

isMatching

public boolean isMatching()
Determine whether the current item is a matching item or a non-matching item
Specified by:
isMatching in interface RegexIterator
Returns:
true if the current item (the one most recently returned by next()) is an item that matches the regular expression, or false if it is an item that does not match

next

public Item next()
Get the next item in the sequence
Specified by:
next in interface SequenceIterator
Returns:
the next item in the sequence

position

public int position()
Get the position of the current item in the sequence
Specified by:
position in interface SequenceIterator
Returns:
the position of the item most recently returned by next(), starting at 1