matcher.html

来自「j2se5-api-zh,java文档的中文版本」· HTML 代码 · 共 1,187 行 · 第 1/4 页

HTML
1,187
字号
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><!--NewPage--><HTML><HEAD><!-- Generated by javadoc (build 1.5.0_03) on Wed Nov 02 09:52:17 CST 2005 --><META http-equiv="Content-Type" content="text/html; charset=gb2312"><TITLE>Matcher (Java 2 Platform SE 5.0)</TITLE><META NAME="keywords" CONTENT="java.util.regex.Matcher class"><LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style"><SCRIPT type="text/javascript">function windowTitle(){    parent.document.title="Matcher (Java 2 Platform SE 5.0)";}</SCRIPT><NOSCRIPT></NOSCRIPT></HEAD><BODY BGCOLOR="white" onload="windowTitle();"><!-- ========= START OF TOP NAVBAR ======= --><A NAME="navbar_top"><!-- --></A><A HREF="#skip-navbar_top" title="跳过导航链接"></A><TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY=""><TR><TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1"><A NAME="navbar_top_firstrow"><!-- --></A><TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">  <TR ALIGN="center" VALIGN="top">  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>概述</B></FONT></A>&nbsp;</TD>  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>软件包</B></FONT></A>&nbsp;</TD>  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>类</B></FONT>&nbsp;</TD>  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/Matcher.html"><FONT CLASS="NavBarFont1"><B>使用</B></FONT></A>&nbsp;</TD>  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>树</B></FONT></A>&nbsp;</TD>  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>已过时</B></FONT></A>&nbsp;</TD>  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>索引</B></FONT></A>&nbsp;</TD>  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>帮助</B></FONT></A>&nbsp;</TD>  </TR></TABLE></TD><TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM><b>Java<sup><font size=-2>TM</font></sup>&nbsp;2&nbsp;Platform<br>Standard&nbsp;Ed. 5.0</b></EM></TD></TR><TR><TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">&nbsp;上一个类&nbsp;&nbsp;<A HREF="MatchResult.html" title="java.util.regex 中的接口"><B>下一个类</B></A></FONT></TD><TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">  <A HREF="../../../index.html@java_2Futil_2Fregex_2FMatcher.html" target="_top"><B>框架</B></A>  &nbsp;&nbsp;<A HREF="Matcher.html" target="_top"><B>无框架</B></A>  &nbsp;&nbsp;<SCRIPT type="text/javascript">  <!--  if(window==top) {    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>所有类</B></A>');  }  //--></SCRIPT><NOSCRIPT>  <A HREF="../../../allclasses-noframe.html"><B>所有类</B></A></NOSCRIPT></FONT></TD></TR><TR><TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">  摘要:&nbsp;嵌套&nbsp;|&nbsp;字段&nbsp;|&nbsp;构造方法&nbsp;|&nbsp;<A HREF="#method_summary">方法</A></FONT></TD><TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">详细信息:&nbsp;字段&nbsp;|&nbsp;构造方法&nbsp;|&nbsp;<A HREF="#method_detail">方法</A></FONT></TD></TR></TABLE><A NAME="skip-navbar_top"></A><!-- ========= END OF TOP NAVBAR ========= --><HR><!-- ======== START OF CLASS DATA ======== --><H2><FONT SIZE="-1">java.util.regex</FONT><BR>类 Matcher</H2><PRE><A HREF="../../lang/Object.html" title="java.lang 中的类">java.lang.Object</A>  <IMG SRC="../../../resources/inherit.gif" ALT="继承者 "><B>java.util.regex.Matcher</B></PRE><DL><DT><B>所有已实现的接口:</B> <DD><A HREF="MatchResult.html" title="java.util.regex 中的接口">MatchResult</A></DD></DL><HR><DL><DT><PRE>public final class <B>Matcher</B><DT>extends <A HREF="../../lang/Object.html" title="java.lang 中的类">Object</A><DT>implements <A HREF="MatchResult.html" title="java.util.regex 中的接口">MatchResult</A></DL></PRE><P>通过解释 <A HREF="Pattern.html" title="java.util.regex 中的类"><CODE>Pattern</CODE></A> 对 <A HREF="../../lang/CharSequence.html" title="java.lang 中的接口"><CODE></code>字符序列<code></CODE></A> 执行匹配操作的引擎。<p> 通过调用模式的 <A HREF="Pattern.html#matcher(java.lang.CharSequence)"><CODE>matcher</CODE></A> 方法从模式创建匹配器。创建匹配器后,可以使用它执行三中不同的匹配操作: <ul><li><p> <A HREF="Matcher.html#matches()"><CODE>matches</CODE></A> 方法尝试将整个输入序列与该模式匹配。  </p></li><li><p> <A HREF="Matcher.html#lookingAt()"><CODE>lookingAt</CODE></A> 尝试将输入序列从头开始与该模式匹配。  </p></li><li><p> <A HREF="Matcher.html#find()"><CODE>find</CODE></A> 方法扫描输入序列以查找与该模式匹配的下一个子序列。  </p></li> </ul><p> 每个方法都返回一个表示成功或失败的布尔值。通过查询匹配器的状态可以获取关于成功匹配的更多信息。<p> 匹配器在其输入的子集(称为<i>区域</i>)中查找匹配项。默认情况下,此区域包含全部的匹配器输入。可通过 <A HREF="Matcher.html#region(int, int)"><CODE>region</CODE></A> 方法修改区域,通过 <A HREF="Matcher.html#regionStart()"><CODE>regionStart</CODE></A> 和 <A HREF="Matcher.html#regionEnd()"><CODE>regionEnd</CODE></A> 方法查询区域。区域边界与某些模式构造交互的方式是可以更改的。有关此内容更多的信息,请参阅 <A HREF="Matcher.html#useAnchoringBounds(boolean)"><CODE>useAnchoringBounds</CODE></A> 和 <A HREF="Matcher.html#useTransparentBounds(boolean)"><CODE>useTransparentBounds</CODE></A>。<p> 此类还定义使用新字符串替换匹配子序列的方法,需要时,可以从匹配结果计算出新字符串的内容。可以先后使用 <A HREF="Matcher.html#appendReplacement(java.lang.StringBuffer, java.lang.String)"><CODE>appendReplacement</CODE></A> 和 <A HREF="Matcher.html#appendTail(java.lang.StringBuffer)"><CODE>appendTail</CODE></A> 方法将结果收集到现有的字符串缓冲区,或者使用更加便捷的 <A HREF="Matcher.html#replaceAll(java.lang.String)"><CODE>replaceAll</CODE></A> 方法创建一个可以在其中替换输入序列中每个匹配子序列的字符串。<p> 匹配器的显式状态包括最近成功匹配的开始和结束索引。它还包括模式中每个<a href="Pattern.html#cg">捕获组</a>捕获的输入子序列的开始和结束索引以及该子序列的总数。出于方便的考虑,还提供了以字符串的形式返回这些已捕获子序列的方法。<p> 匹配器的显式状态最初不确定;在成功匹配导致 <A HREF="../../lang/IllegalStateException.html" title="java.lang 中的类"><CODE>IllegalStateException</CODE></A> 抛出之前尝试查询其中的任何部分。每个匹配操作都将重新计算匹配器的显式状态。<p> 匹配器的隐式状态包括输入字符序列和<i>追加位置</i>,追加位置最初是零,然后由 <A HREF="Matcher.html#appendReplacement(java.lang.StringBuffer, java.lang.String)"><CODE>appendReplacement</CODE></A> 方法更新。<p> 可以通过调用匹配器的 <A HREF="Matcher.html#reset()"><CODE>reset()</CODE></A> 方法来显式重置匹配器,或者如果需要新输入序列,则调用其 <A HREF="Matcher.html#reset(java.lang.CharSequence)"><CODE>reset(CharSequence)</CODE></A> 方法。重置匹配器将放弃其显式状态信息并将追加位置设置为零。<p> 此类的实例用于多个并发线程是不安全的。</p><P><P><DL><DT><B>从以下版本开始:</B></DT>  <DD>1.4</DD></DL><HR><P><!-- ========== METHOD SUMMARY =========== --><A NAME="method_summary"><!-- --></A><TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY=""><TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"><TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2"><B>方法摘要</B></FONT></TH></TR><TR BGCOLOR="white" CLASS="TableRowColor"><TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"><CODE>&nbsp;<A HREF="Matcher.html" title="java.util.regex 中的类">Matcher</A></CODE></FONT></TD><TD><CODE><B><A HREF="Matcher.html#appendReplacement(java.lang.StringBuffer, java.lang.String)">appendReplacement</A></B>(<A HREF="../../lang/StringBuffer.html" title="java.lang 中的类">StringBuffer</A>&nbsp;sb,                  <A HREF="../../lang/String.html" title="java.lang 中的类">String</A>&nbsp;replacement)</CODE><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;实现非终端追加和替换步骤。</TD></TR><TR BGCOLOR="white" CLASS="TableRowColor"><TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"><CODE>&nbsp;<A HREF="../../lang/StringBuffer.html" title="java.lang 中的类">StringBuffer</A></CODE></FONT></TD><TD><CODE><B><A HREF="Matcher.html#appendTail(java.lang.StringBuffer)">appendTail</A></B>(<A HREF="../../lang/StringBuffer.html" title="java.lang 中的类">StringBuffer</A>&nbsp;sb)</CODE><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;实现终端追加和替换步骤。</TD></TR><TR BGCOLOR="white" CLASS="TableRowColor"><TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"><CODE>&nbsp;int</CODE></FONT></TD><TD><CODE><B><A HREF="Matcher.html#end()">end</A></B>()</CODE><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;返回最后匹配字符之后的偏移量。</TD></TR><TR BGCOLOR="white" CLASS="TableRowColor"><TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"><CODE>&nbsp;int</CODE></FONT></TD><TD><CODE><B><A HREF="Matcher.html#end(int)">end</A></B>(int&nbsp;group)</CODE><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;返回在以前的匹配操作期间,由给定组所捕获子序列的最后字符之后的偏移量。</TD></TR><TR BGCOLOR="white" CLASS="TableRowColor"><TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"><CODE>&nbsp;boolean</CODE></FONT></TD><TD><CODE><B><A HREF="Matcher.html#find()">find</A></B>()</CODE><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;尝试查找与该模式匹配的输入序列的下一个子序列。</TD></TR><TR BGCOLOR="white" CLASS="TableRowColor"><TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"><CODE>&nbsp;boolean</CODE></FONT></TD><TD><CODE><B><A HREF="Matcher.html#find(int)">find</A></B>(int&nbsp;start)</CODE><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;重置此匹配器,然后尝试查找匹配该模式、从指定索引开始的输入序列的下一个子序列。</TD></TR><TR BGCOLOR="white" CLASS="TableRowColor"><TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"><CODE>&nbsp;<A HREF="../../lang/String.html" title="java.lang 中的类">String</A></CODE></FONT></TD><TD><CODE><B><A HREF="Matcher.html#group()">group</A></B>()</CODE><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;返回由以前匹配操作所匹配的输入子序列。</TD></TR><TR BGCOLOR="white" CLASS="TableRowColor"><TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"><CODE>&nbsp;<A HREF="../../lang/String.html" title="java.lang 中的类">String</A></CODE></FONT></TD><TD><CODE><B><A HREF="Matcher.html#group(int)">group</A></B>(int&nbsp;group)</CODE><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;返回在以前匹配操作期间由给定组捕获的输入子序列。</TD></TR><TR BGCOLOR="white" CLASS="TableRowColor"><TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"><CODE>&nbsp;int</CODE></FONT></TD><TD><CODE><B><A HREF="Matcher.html#groupCount()">groupCount</A></B>()</CODE><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;返回此匹配器模式中的捕获组数。</TD></TR><TR BGCOLOR="white" CLASS="TableRowColor"><TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"><CODE>&nbsp;boolean</CODE></FONT></TD><TD><CODE><B><A HREF="Matcher.html#hasAnchoringBounds()">hasAnchoringBounds</A></B>()</CODE><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;查询此匹配器区域界限的定位。</TD></TR><TR BGCOLOR="white" CLASS="TableRowColor"><TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"><CODE>&nbsp;boolean</CODE></FONT></TD><TD><CODE><B><A HREF="Matcher.html#hasTransparentBounds()">hasTransparentBounds</A></B>()</CODE><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;查询此匹配器区域边界的透明度。</TD></TR><TR BGCOLOR="white" CLASS="TableRowColor"><TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"><CODE>&nbsp;boolean</CODE></FONT></TD><TD><CODE><B><A HREF="Matcher.html#hitEnd()">hitEnd</A></B>()</CODE><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;如果匹配器执行的最后匹配操作中搜索引擎遇到输入结尾,则返回 true。</TD></TR><TR BGCOLOR="white" CLASS="TableRowColor"><TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"><CODE>&nbsp;boolean</CODE></FONT></TD><TD><CODE><B><A HREF="Matcher.html#lookingAt()">lookingAt</A></B>()</CODE><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;尝试将从区域开头开始的输入序列与该模式匹配。</TD></TR><TR BGCOLOR="white" CLASS="TableRowColor"><TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"><CODE>&nbsp;boolean</CODE></FONT></TD><TD><CODE><B><A HREF="Matcher.html#matches()">matches</A></B>()</CODE><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;尝试将整个区域与模式匹配。</TD></TR><TR BGCOLOR="white" CLASS="TableRowColor"><TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"><CODE>&nbsp;<A HREF="Pattern.html" title="java.util.regex 中的类">Pattern</A></CODE></FONT></TD><TD><CODE><B><A HREF="Matcher.html#pattern()">pattern</A></B>()</CODE><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;返回由此匹配器解释的模式。</TD></TR><TR BGCOLOR="white" CLASS="TableRowColor"><TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"><CODE>static&nbsp;<A HREF="../../lang/String.html" title="java.lang 中的类">String</A></CODE></FONT></TD><TD><CODE><B><A HREF="Matcher.html#quoteReplacement(java.lang.String)">quoteReplacement</A></B>(<A HREF="../../lang/String.html" title="java.lang 中的类">String</A>&nbsp;s)</CODE><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;返回指定 <code>String</code> 的字面值替换 <code>String</code>。</TD></TR><TR BGCOLOR="white" CLASS="TableRowColor"><TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"><CODE>&nbsp;<A HREF="Matcher.html" title="java.util.regex 中的类">Matcher</A></CODE></FONT></TD><TD><CODE><B><A HREF="Matcher.html#region(int, int)">region</A></B>(int&nbsp;start,       int&nbsp;end)</CODE><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;设置此匹配器的区域限制。</TD></TR><TR BGCOLOR="white" CLASS="TableRowColor"><TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"><CODE>&nbsp;int</CODE></FONT></TD><TD><CODE><B><A HREF="Matcher.html#regionEnd()">regionEnd</A></B>()</CODE><BR>

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?