org.apache.oro.text.regex
Class Perl5MatchResult

java.lang.Object
  |
  +--org.apache.oro.text.regex.Perl5MatchResult
All Implemented Interfaces:
MatchResult

final class Perl5MatchResult
extends Object
implements MatchResult

A class used to store and access the results of a Perl5Pattern match.

Version:
$Id: Perl5MatchResult.java,v 1.4 2001/12/02 06:01:41 markm Exp $
Author:
Daniel F. Savarese
See Also:
PatternMatcher, Perl5Matcher

Field Summary
(package private)  int[] _beginGroupOffset
          Arrays containing the beginning and end offsets of the pattern groups matched within the actual matched pattern contained in the variable match.
(package private)  int[] _endGroupOffset
          Arrays containing the beginning and end offsets of the pattern groups matched within the actual matched pattern contained in the variable match.
(package private)  String _match
          The entire string that matched the pattern.
(package private)  int _matchBeginOffset
          The character offset into the line or stream where the match begins.
 
Constructor Summary
(package private) Perl5MatchResult(int groups)
          Constructs a MatchResult able to store match information for a number of subpattern groups.
 
Method Summary
 int begin(int group)
          Enabled: @param group The pattern subgroup.
 int beginOffset(int group)
          Returns an offset marking the beginning of the pattern match relative to the beginning of the input.
 int end(int group)
          Enabled: @param group The pattern subgroup.
 int endOffset(int group)
          Returns an offset marking the end of the pattern match relative to the beginning of the input.
 String group(int group)
          Enabled: Returns the contents of the parenthesized subgroups of a match, counting parentheses from left to right and starting from 1.
 int groups()
          Enabled: @return The number of groups contained in the result.
 int length()
          Enabled: A convenience method returning the length of the entire match.
 String toString()
          The same as group(0).
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

_matchBeginOffset

int _matchBeginOffset
The character offset into the line or stream where the match begins. Pattern matching methods that look for matches a line at a time should use this field as the offset into the line of the match. Methods that look for matches independent of line boundaries should use this field as the offset into the entire text stream.


_beginGroupOffset

int[] _beginGroupOffset
Arrays containing the beginning and end offsets of the pattern groups matched within the actual matched pattern contained in the variable match. Pattern matching methods that do not match subgroups, will only contain entries for group 0, which always refers to the entire pattern. beginGroupOffset contains the start offset of the groups, indexed by group number, which will always be 0 for group 0. endGroupOffset contains the ending offset + 1 of the groups. A group matching the null string will have beginGroupOffset and endGroupOffset entries of equal value. Following a convention established by the GNU regular expression library for the C language, groups that are not part of a match contain -1 as their begin and end offsets.


_endGroupOffset

int[] _endGroupOffset
Arrays containing the beginning and end offsets of the pattern groups matched within the actual matched pattern contained in the variable match. Pattern matching methods that do not match subgroups, will only contain entries for group 0, which always refers to the entire pattern. beginGroupOffset contains the start offset of the groups, indexed by group number, which will always be 0 for group 0. endGroupOffset contains the ending offset + 1 of the groups. A group matching the null string will have beginGroupOffset and endGroupOffset entries of equal value. Following a convention established by the GNU regular expression library for the C language, groups that are not part of a match contain -1 as their begin and end offsets.


_match

String _match
The entire string that matched the pattern.

Constructor Detail

Perl5MatchResult

Perl5MatchResult(int groups)
Constructs a MatchResult able to store match information for a number of subpattern groups.

Parameters:
groups - The number of groups this MatchResult can store. Only postitive values greater than or equal to 1 make any sense. At minimum, a MatchResult stores one group which represents the entire pattern matched including all subparts.
Method Detail

length

public int length()
Description copied from interface: MatchResult
Enabled: A convenience method returning the length of the entire match. If you want to get the length of a particular subgroup you should use the MatchResult.group(int) method to get the string and then access its length() method as follows:

 int length = -1; // Use -1 to indicate group doesn't exist
 MatchResult result;
 String subgroup;

 // Initialization of result omitted

 subgroup = result.group(1);
 if(subgroup != null)
   length = subgroup.length();

 

The length() method serves as a more a more efficient way to do:

 length = result.group(0).length();
 

Specified by:
length in interface MatchResult
Returns:
The length of the match.

groups

public int groups()
Description copied from interface: MatchResult
Enabled: @return The number of groups contained in the result. This number includes the 0th group. In other words, the result refers to the number of parenthesized subgroups plus the entire match itself.

Specified by:
groups in interface MatchResult
Returns:
The number of groups contained in the result. This number includes the 0th group. In other words, the result refers to the number of parenthesized subgroups plus the entire match itself.

group

public String group(int group)
Description copied from interface: MatchResult
Enabled: Returns the contents of the parenthesized subgroups of a match, counting parentheses from left to right and starting from 1. Group 0 always refers to the entire match. For example, if the pattern foo(\d+) is used to extract a match from the input abfoo123 , then group(0) will return foo123 and group(1) will return 123 . group(2) will return null because there is only one subgroup in the original pattern.

Specified by:
group in interface MatchResult
Parameters:
group - The pattern subgroup to return.
Returns:
A string containing the indicated pattern subgroup. Group 0 always refers to the entire match. If a group was never matched, it returns null. This is not to be confused with a group matching the null string, which will return a String of length 0.

begin

public int begin(int group)
Description copied from interface: MatchResult
Enabled: @param group The pattern subgroup.

Specified by:
begin in interface MatchResult
Parameters:
group - The pattern subgroup.
Returns:
The offset into group 0 of the first token in the indicated pattern subgroup. If a group was never matched or does not exist, returns -1.

end

public int end(int group)
Description copied from interface: MatchResult
Enabled: @param group The pattern subgroup.

Specified by:
end in interface MatchResult
Parameters:
group - The pattern subgroup.
Returns:
Returns one plus the offset into group 0 of the last token in the indicated pattern subgroup. If a group was never matched or does not exist, returns -1. A group matching the null string will return its start offset.

beginOffset

public int beginOffset(int group)
Returns an offset marking the beginning of the pattern match relative to the beginning of the input.

Specified by:
beginOffset in interface MatchResult
Parameters:
group - The pattern subgroup.
Returns:
The offset of the first token in the indicated pattern subgroup. If a group was never matched or does not exist, returns -1.

endOffset

public int endOffset(int group)
Returns an offset marking the end of the pattern match relative to the beginning of the input.

Specified by:
endOffset in interface MatchResult
Parameters:
group - The pattern subgroup.
Returns:
Returns one plus the offset of the last token in the indicated pattern subgroup. If a group was never matched or does not exist, returns -1. A group matching the null string will return its start offset.

toString

public String toString()
The same as group(0).

Specified by:
toString in interface MatchResult
Overrides:
toString in class Object
Returns:
A string containing the entire match.


comments?