Package net.sf.saxon.regex
Class OpUnambiguousRepeat
java.lang.Object
net.sf.saxon.regex.Operation
net.sf.saxon.regex.OpRepeat
net.sf.saxon.regex.OpUnambiguousRepeat
Handle a repetition where there is no ambiguity; if the repeated
term is matched in the string, then it cannot match anything other than
the repeated term. It is also used when the number of occurrences is
fixed. In this situation there will never be any need for
backtracking, so there is no need to keep any information to support
backtracking, and in addition, there is no distinction between greedy
and reluctant matching. This operation is used only for a repeated
atom or CharClass, which also means that if the repeated term matches
then it can only match in one way; a typical example is the term "A*"
in the regex "A*B".
-
Nested Class Summary
Nested classes/interfaces inherited from class net.sf.saxon.regex.Operation
Operation.ForceProgressIterator -
Field Summary
Fields inherited from class net.sf.saxon.regex.Operation
MATCHES_ZLS_ANYWHERE, MATCHES_ZLS_AT_END, MATCHES_ZLS_AT_START, MATCHES_ZLS_NEVER -
Method Summary
Modifier and TypeMethodDescriptionintGet the length of the matches returned by this operation if they are fixed-lengthintGet the maximum depth of looping within this operationiterateMatches(REMatcher matcher, int position) Get an iterator returning all the matches for this operationintAsk whether the regular expression is known, after static analysis, to match a zero-length stringOptimize the operationMethods inherited from class net.sf.saxon.regex.OpRepeat
containsCapturingExpressions, display, getInitialCharacterClass, getMinimumMatchLength
-
Method Details
-
matchesEmptyString
public int matchesEmptyString()Description copied from class:OperationAsk whether the regular expression is known, after static analysis, to match a zero-length string- Overrides:
matchesEmptyStringin classOpRepeat- Returns:
- a value indicating whether the regex is statically known to match
a zero-length string. Specifically:
- returns
Operation.MATCHES_ZLS_AT_STARTif the expression is statically known to match a zero-length string at the start of the supplied input; - returns
Operation.MATCHES_ZLS_AT_ENDif it is statically known to return a zero-length string at the end of the supplied input; - returns
Operation.MATCHES_ZLS_ANYWHEREif it is statically known to match a zero-length string anywhere in the input. - returns
Operation.MATCHES_ZLS_NEVERif it is statically known that the regex will never match a zero length string.
- returns
-
getMatchLength
public int getMatchLength()Description copied from class:OperationGet the length of the matches returned by this operation if they are fixed-length- Overrides:
getMatchLengthin classOpRepeat- Returns:
- the length of the matches, or -1 if the length is variable
-
getMaxLoopingDepth
public int getMaxLoopingDepth()Get the maximum depth of looping within this operation- Overrides:
getMaxLoopingDepthin classOpRepeat- Returns:
- the maximum number of nested iterations
-
optimize
Description copied from class:OperationOptimize the operation -
iterateMatches
Description copied from class:OperationGet an iterator returning all the matches for this operation- Overrides:
iterateMatchesin classOpRepeat- Parameters:
matcher- supplies the context for the matching; may be updated with information about captured groupsposition- the start position to seek a match- Returns:
- an iterator returning the endpoints of all matches starting at the supplied position
-