Save This Page
Home » openjdk-7 » java » util » regex » [javadoc | source]
    1   /*
    2    * Copyright 2003-2004 Sun Microsystems, Inc.  All Rights Reserved.
    3    * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    4    *
    5    * This code is free software; you can redistribute it and/or modify it
    6    * under the terms of the GNU General Public License version 2 only, as
    7    * published by the Free Software Foundation.  Sun designates this
    8    * particular file as subject to the "Classpath" exception as provided
    9    * by Sun in the LICENSE file that accompanied this code.
   10    *
   11    * This code is distributed in the hope that it will be useful, but WITHOUT
   12    * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   13    * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   14    * version 2 for more details (a copy is included in the LICENSE file that
   15    * accompanied this code).
   16    *
   17    * You should have received a copy of the GNU General Public License version
   18    * 2 along with this work; if not, write to the Free Software Foundation,
   19    * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   20    *
   21    * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
   22    * CA 95054 USA or visit www.sun.com if you need additional information or
   23    * have any questions.
   24    */
   25   
   26   package java.util.regex;
   27   
   28   /**
   29    * The result of a match operation.
   30    *
   31    * <p>This interface contains query methods used to determine the
   32    * results of a match against a regular expression. The match boundaries,
   33    * groups and group boundaries can be seen but not modified through
   34    * a <code>MatchResult</code>.
   35    *
   36    * @author  Michael McCloskey
   37    * @see Matcher
   38    * @since 1.5
   39    */
   40   public interface MatchResult {
   41   
   42       /**
   43        * Returns the start index of the match.
   44        *
   45        * @return  The index of the first character matched
   46        *
   47        * @throws  IllegalStateException
   48        *          If no match has yet been attempted,
   49        *          or if the previous match operation failed
   50        */
   51       public int start();
   52   
   53       /**
   54        * Returns the start index of the subsequence captured by the given group
   55        * during this match.
   56        *
   57        * <p> <a href="Pattern.html#cg">Capturing groups</a> are indexed from left
   58        * to right, starting at one.  Group zero denotes the entire pattern, so
   59        * the expression <i>m.</i><tt>start(0)</tt> is equivalent to
   60        * <i>m.</i><tt>start()</tt>.  </p>
   61        *
   62        * @param  group
   63        *         The index of a capturing group in this matcher's pattern
   64        *
   65        * @return  The index of the first character captured by the group,
   66        *          or <tt>-1</tt> if the match was successful but the group
   67        *          itself did not match anything
   68        *
   69        * @throws  IllegalStateException
   70        *          If no match has yet been attempted,
   71        *          or if the previous match operation failed
   72        *
   73        * @throws  IndexOutOfBoundsException
   74        *          If there is no capturing group in the pattern
   75        *          with the given index
   76        */
   77       public int start(int group);
   78   
   79       /**
   80        * Returns the offset after the last character matched.  </p>
   81        *
   82        * @return  @return  The offset after the last character matched
   83        *
   84        * @throws  IllegalStateException
   85        *          If no match has yet been attempted,
   86        *          or if the previous match operation failed
   87        */
   88       public int end();
   89   
   90       /**
   91        * Returns the offset after the last character of the subsequence
   92        * captured by the given group during this match.
   93        *
   94        * <p> <a href="Pattern.html#cg">Capturing groups</a> are indexed from left
   95        * to right, starting at one.  Group zero denotes the entire pattern, so
   96        * the expression <i>m.</i><tt>end(0)</tt> is equivalent to
   97        * <i>m.</i><tt>end()</tt>.  </p>
   98        *
   99        * @param  group
  100        *         The index of a capturing group in this matcher's pattern
  101        *
  102        * @return  The offset after the last character captured by the group,
  103        *          or <tt>-1</tt> if the match was successful
  104        *          but the group itself did not match anything
  105        *
  106        * @throws  IllegalStateException
  107        *          If no match has yet been attempted,
  108        *          or if the previous match operation failed
  109        *
  110        * @throws  IndexOutOfBoundsException
  111        *          If there is no capturing group in the pattern
  112        *          with the given index
  113        */
  114       public int end(int group);
  115   
  116       /**
  117        * Returns the input subsequence matched by the previous match.
  118        *
  119        * <p> For a matcher <i>m</i> with input sequence <i>s</i>,
  120        * the expressions <i>m.</i><tt>group()</tt> and
  121        * <i>s.</i><tt>substring(</tt><i>m.</i><tt>start(),</tt>&nbsp;<i>m.</i><tt>end())</tt>
  122        * are equivalent.  </p>
  123        *
  124        * <p> Note that some patterns, for example <tt>a*</tt>, match the empty
  125        * string.  This method will return the empty string when the pattern
  126        * successfully matches the empty string in the input.  </p>
  127        *
  128        * @return The (possibly empty) subsequence matched by the previous match,
  129        *         in string form
  130        *
  131        * @throws  IllegalStateException
  132        *          If no match has yet been attempted,
  133        *          or if the previous match operation failed
  134        */
  135       public String group();
  136   
  137       /**
  138        * Returns the input subsequence captured by the given group during the
  139        * previous match operation.
  140        *
  141        * <p> For a matcher <i>m</i>, input sequence <i>s</i>, and group index
  142        * <i>g</i>, the expressions <i>m.</i><tt>group(</tt><i>g</i><tt>)</tt> and
  143        * <i>s.</i><tt>substring(</tt><i>m.</i><tt>start(</tt><i>g</i><tt>),</tt>&nbsp;<i>m.</i><tt>end(</tt><i>g</i><tt>))</tt>
  144        * are equivalent.  </p>
  145        *
  146        * <p> <a href="Pattern.html#cg">Capturing groups</a> are indexed from left
  147        * to right, starting at one.  Group zero denotes the entire pattern, so
  148        * the expression <tt>m.group(0)</tt> is equivalent to <tt>m.group()</tt>.
  149        * </p>
  150        *
  151        * <p> If the match was successful but the group specified failed to match
  152        * any part of the input sequence, then <tt>null</tt> is returned. Note
  153        * that some groups, for example <tt>(a*)</tt>, match the empty string.
  154        * This method will return the empty string when such a group successfully
  155        * matches the empty string in the input.  </p>
  156        *
  157        * @param  group
  158        *         The index of a capturing group in this matcher's pattern
  159        *
  160        * @return  The (possibly empty) subsequence captured by the group
  161        *          during the previous match, or <tt>null</tt> if the group
  162        *          failed to match part of the input
  163        *
  164        * @throws  IllegalStateException
  165        *          If no match has yet been attempted,
  166        *          or if the previous match operation failed
  167        *
  168        * @throws  IndexOutOfBoundsException
  169        *          If there is no capturing group in the pattern
  170        *          with the given index
  171        */
  172       public String group(int group);
  173   
  174       /**
  175        * Returns the number of capturing groups in this match result's pattern.
  176        *
  177        * <p> Group zero denotes the entire pattern by convention. It is not
  178        * included in this count.
  179        *
  180        * <p> Any non-negative integer smaller than or equal to the value
  181        * returned by this method is guaranteed to be a valid group index for
  182        * this matcher.  </p>
  183        *
  184        * @return The number of capturing groups in this matcher's pattern
  185        */
  186       public int groupCount();
  187   
  188   }

Save This Page
Home » openjdk-7 » java » util » regex » [javadoc | source]