pattern.html

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

HTML
1,186
字号
<!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:18 CST 2005 --><META http-equiv="Content-Type" content="text/html; charset=gb2312"><TITLE>Pattern (Java 2 Platform SE 5.0)</TITLE><META NAME="keywords" CONTENT="java.util.regex.Pattern class"><LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style"><SCRIPT type="text/javascript">function windowTitle(){    parent.document.title="Pattern (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/Pattern.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;<A HREF="MatchResult.html" title="java.util.regex 中的接口"><B>上一个类</B></A>&nbsp;&nbsp;<A HREF="PatternSyntaxException.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_2FPattern.html" target="_top"><B>框架</B></A>  &nbsp;&nbsp;<A HREF="Pattern.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;<A HREF="#field_summary">字段</A>&nbsp;|&nbsp;构造方法&nbsp;|&nbsp;<A HREF="#method_summary">方法</A></FONT></TD><TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">详细信息:&nbsp;<A HREF="#field_detail">字段</A>&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>类 Pattern</H2><PRE><A HREF="../../lang/Object.html" title="java.lang 中的类">java.lang.Object</A>  <IMG SRC="../../../resources/inherit.gif" ALT="继承者 "><B>java.util.regex.Pattern</B></PRE><DL><DT><B>所有已实现的接口:</B> <DD>java.io.Serializable</DD></DL><HR><DL><DT><PRE>public final class <B>Pattern</B><DT>extends <A HREF="../../lang/Object.html" title="java.lang 中的类">Object</A><DT>implements java.io.Serializable</DL></PRE><P>正则表达式的编译表示形式。<p> 指定为字符串的正则表达式必须首先被编译为此类的实例。然后,可将得到的模式用于创建 <A HREF="Matcher.html" title="java.util.regex 中的类"><CODE>Matcher</CODE></A> 对象,依照正则表达式,该对象可以与任意<A HREF="../../lang/CharSequence.html" title="java.lang 中的接口"><CODE></code>字符序列<code></CODE></A>匹配。执行匹配所涉及的所有状态都驻留在匹配器中,所以多个匹配器可以共享同一模式。<p> 因此,典型的调用顺序是 <blockquote><pre> Pattern p = Pattern.<A HREF="Pattern.html#compile(java.lang.String)"><CODE>compile</CODE></A>("a*b"); Matcher m = p.<A HREF="Pattern.html#matcher(java.lang.CharSequence)"><CODE>matcher</CODE></A>("aaaaab"); boolean b = m.<A HREF="Matcher.html#matches()"><CODE>matches</CODE></A>();</pre></blockquote><p> 在仅使用一次正则表达式时,可以方便地通过此类定义 <A HREF="Pattern.html#matches(java.lang.String, java.lang.CharSequence)"><CODE>matches</CODE></A> 方法。此方法编译表达式并在单个调用中将输入序列与其匹配。语句 <blockquote><pre> boolean b = Pattern.matches("a*b", "aaaaab");</pre></blockquote>等效于上面的三个语句,尽管对于重复的匹配而言它效率不高,因为它不允许重用已编译的模式。<p> 此类的实例是不可变的,可供多个并发线程安全使用。<A HREF="Matcher.html" title="java.util.regex 中的类"><CODE>Matcher</CODE></A> 类的实例用于此目的则不安全。<a name="sum"><h4> 正则表达式的构造摘要 </h4> <table border="0" cellpadding="1" cellspacing="0"   summary="Regular expression constructs, and what they match"> <tr align="left"><th bgcolor="#CCCCFF" align="left" id="construct">构造</th><th bgcolor="#CCCCFF" align="left" id="matches">匹配</th></tr><tr><th>&nbsp;</th></tr><tr align="left"><th colspan="2" id="characters">字符</th></tr><tr><td valign="top" headers="construct characters"><i>x</i></td><td headers="matches">字符 <i>x</i></td></tr> <tr><td valign="top" headers="construct characters"><tt>\\</tt></td><td headers="matches">反斜线字符</td></tr><tr><td valign="top" headers="construct characters"><tt>\0</tt><i>n</i></td><td headers="matches">带有八进制值 <tt>0</tt><i>n</i> 的字符(0&nbsp;<tt>&lt;=</tt>&nbsp;<i>n</i>&nbsp;<tt>&lt;=</tt>&nbsp;7)</td></tr><tr><td valign="top" headers="construct characters"><tt>\0</tt><i>nn</i></td><td headers="matches">带有八进制值 <tt>0</tt><i>nn</i> 的字符(0&nbsp;<tt>&lt;=</tt>&nbsp;<i>n</i>&nbsp;<tt>&lt;=</tt>&nbsp;7)</td></tr><tr><td valign="top" headers="construct characters"><tt>\0</tt><i>mnn</i></td><td headers="matches">带有八进制值 <tt>0</tt><i>mnn</i> 的字符(0&nbsp;<tt>&lt;=</tt>&nbsp;<i>m</i>&nbsp;<tt>&lt;=</tt>&nbsp;3、0&nbsp;<tt>&lt;=</tt>&nbsp;<i>n</i>&nbsp;<tt>&lt;=</tt>&nbsp;7)</td></tr><tr><td valign="top" headers="construct characters"><tt>\x</tt><i>hh</i></td><td headers="matches">带有十六进制值&nbsp;<tt>0x</tt><i>hh</i> 的字符</td></tr><tr><td valign="top" headers="construct characters"><tt>\u</tt><i>hhhh</i></td><td headers="matches">带有十六进制值&nbsp;<tt>0x</tt> <i>hhhh</i> 的字符</td></tr><tr><td valign="top" headers="matches"><tt>\t</tt></td><td headers="matches">制表符 (<tt>'\u0009'</tt>)</td></tr><tr><td valign="top" headers="construct characters"><tt>\n</tt></td><td headers="matches">新行(换行)符 (<tt>'\u000A'</tt>)</td></tr><tr><td valign="top" headers="construct characters"><tt>\r</tt></td><td headers="matches">回车符 (<tt>'\u000D'</tt>)</td></tr><tr><td valign="top" headers="construct characters"><tt>\f</tt></td><td headers="matches">换页符 (<tt>'\u000C'</tt>)</td></tr><tr><td valign="top" headers="construct characters"><tt>\a</tt></td><td headers="matches">报警 (bell) 符 (<tt>'\u0007'</tt>)</td></tr><tr><td valign="top" headers="construct characters"><tt>\e</tt></td><td headers="matches">转义符 (<tt>'\u001B'</tt>)</td></tr><tr><td valign="top" headers="construct characters"><tt>\c</tt><i>x</i></td><td headers="matches">对应于 <i>x</i> 的控制符</td></tr><tr><th>&nbsp;</th></tr><tr align="left"><th colspan="2" id="classes">字符类</th></tr><tr><td valign="top" headers="construct classes"><tt>[abc]</tt></td>    <td headers="matches"><tt>a</tt>、<tt>b</tt> 或 <tt>c</tt>(简单类)</td></tr><tr><td valign="top" headers="construct classes"><tt>[^abc]</tt></td>    <td headers="matches">任何字符,除了 <tt>a</tt>、<tt>b</tt> 或 <tt>c</tt>(否定)</td></tr><tr><td valign="top" headers="construct classes"><tt>[a-zA-Z]</tt></td>   <td headers="matches"><tt>a</tt> 到 <tt>z</tt> 或 <tt>A</tt> 到 <tt>Z</tt>,两头的字母包括在内(范围)</td></tr><tr><td valign="top" headers="construct classes"><tt>[a-d[m-p]]</tt></td>   <td headers="matches"><tt>a</tt> 到 <tt>d</tt> 或 <tt>m</tt> 到 <tt>p</tt>:<tt>[a-dm-p]</tt>(并集)</td></tr><tr><td valign="top" headers="construct classes"><tt>[a-z&&[def]]</tt></td>   <td headers="matches"><tt>d</tt>、<tt>e</tt> 或 <tt>f</tt>(交集)</tr><tr><td valign="top" headers="construct classes"><tt>[a-z&&[^bc]]</tt></td>   <td headers="matches"><tt>a</tt> 到 <tt>z</tt>,除了 <tt>b</tt> 和 <tt>c</tt>:<tt>[ad-z]</tt>(减)</td></tr><tr><td valign="top" headers="construct classes"><tt>[a-z&&[^m-p]]</tt></td>   <td headers="matches"><tt>a</tt> 到 <tt>z</tt>,且不包括 <tt>m</tt> 到 <tt>p</tt>:<tt>[a-lq-z]</tt>(减)</td></tr><tr><th>&nbsp;</th></tr><tr align="left"><th colspan="2" id="predef">预定义字符类</th></tr><tr><td valign="top" headers="construct predef"><tt>.</tt></td>    <td headers="matches">任何字符(与<a href="#lt">行结束符</a>可能匹配也可能不匹配)</td></tr><tr><td valign="top" headers="construct predef"><tt>\d</tt></td>    <td headers="matches">数字:<tt>[0-9]</tt></td></tr><tr><td valign="top" headers="construct predef"><tt>\D</tt></td>    <td headers="matches">非数字: <tt>[^0-9]</tt></td></tr><tr><td valign="top" headers="construct predef"><tt>\s</tt></td>    <td headers="matches">空白字符:<tt>[ \t\n\x0B\f\r]</tt></td></tr><tr><td valign="top" headers="construct predef"><tt>\S</tt></td>    <td headers="matches">非空白字符:<tt>[^\s]</tt></td></tr><tr><td valign="top" headers="construct predef"><tt>\w</tt></td>    <td headers="matches">单词字符:<tt>[a-zA-Z_0-9]</tt></td></tr><tr><td valign="top" headers="construct predef"><tt>\W</tt></td>    <td headers="matches">非单词字符:<tt>[^\w]</tt></td></tr><tr><th>&nbsp;</th></tr><tr align="left"><th colspan="2" id="posix">POSIX 字符类</b>(仅 US-ASCII)<b></th></tr><tr><td valign="top" headers="construct posix"><tt>\p{Lower}</tt></td>    <td headers="matches">小写字母字符:<tt>[a-z]</tt></td></tr><tr><td valign="top" headers="construct posix"><tt>\p{Upper}</tt></td>    <td headers="matches">大写字母字符:<tt>[A-Z]</tt></td></tr><tr><td valign="top" headers="construct posix"><tt>\p{ASCII}</tt></td>    <td headers="matches">所有 ASCII:<tt>[\x00-\x7F]</tt></td></tr><tr><td valign="top" headers="construct posix"><tt>\p{Alpha}</tt></td>    <td headers="matches">字母字符:<tt>[\p{Lower}\p{Upper}]</tt></td></tr><tr><td valign="top" headers="construct posix"><tt>\p{Digit}</tt></td>    <td headers="matches">十进制数字:<tt>[0-9]</tt></td></tr><tr><td valign="top" headers="construct posix"><tt>\p{Alnum}</tt></td>    <td headers="matches">字母数字字符:<tt>[\p{Alpha}\p{Digit}]</tt></td></tr><tr><td valign="top" headers="construct posix"><tt>\p{Punct}</tt></td>    <td headers="matches">标点符号:<tt>!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~</tt></td></tr>    <!-- <tt>[\!"#\$%&'\(\)\*\+,\-\./:;\<=\>\?@\[\\\]\^_`\{\|\}~]</tt>          <tt>[\X21-\X2F\X31-\X40\X5B-\X60\X7B-\X7E]</tt> --><tr><td valign="top" headers="construct posix"><tt>\p{Graph}</tt></td>    <td headers="matches">可见字符:<tt>[\p{Alnum}\p{Punct}]</tt></td></tr><tr><td valign="top" headers="construct posix"><tt>\p{Print}</tt></td>    <td headers="matches">可打印字符:<tt>[\p{Graph}\x20]</tt></td></tr><tr><td valign="top" headers="construct posix"><tt>\p{Blank}</tt></td>    <td headers="matches">空格或制表符:<tt>[ \t]</tt></td></tr><tr><td valign="top" headers="construct posix"><tt>\p{Cntrl}</tt></td>    <td headers="matches">控制字符:<tt>[\x00-\x1F\x7F]</td></tr><tr><td valign="top" headers="construct posix"><tt>\p{XDigit}</tt></td>    <td headers="matches">十六进制数字:<tt>[0-9a-fA-F]</tt></td></tr><tr><td valign="top" headers="construct posix"><tt>\p{Space}</tt></td>    <td headers="matches">空白字符:<tt>[ \t\n\x0B\f\r]</tt></td></tr><tr><th>&nbsp;</th></tr><tr align="left"><th colspan="2">java.lang.Character 类(简单的 <a href="#jcc">java 字符类型</a>)</th></tr><tr><td valign="top"><tt>\p{javaLowerCase}</tt></td>    <td>等效于 java.lang.Character.isLowerCase()</td></tr><tr><td valign="top"><tt>\p{javaUpperCase}</tt></td>    <td>等效于 java.lang.Character.isUpperCase()</td></tr><tr><td valign="top"><tt>\p{javaWhitespace}</tt></td>    <td>等效于 java.lang.Character.isWhitespace()</td></tr><tr><td valign="top"><tt>\p{javaMirrored}</tt></td>    <td>等效于 java.lang.Character.isMirrored()</td></tr><tr><th>&nbsp;</th></tr><tr align="left"><th colspan="2" id="unicode">Unicode 块和类别的类</th></tr><tr><td valign="top" headers="construct unicode"><tt>\p{InGreek}</tt></td>    <td headers="matches">Greek&nbsp;块(简单<a href="#ubc">块</a>)中的字符</td></tr><tr><td valign="top" headers="construct unicode"><tt>\p{Lu}</tt></td>    <td headers="matches">大写字母(简单<a href="#ubc">类别</a>)</td></tr><tr><td valign="top" headers="construct unicode"><tt>\p{Sc}</tt></td>    <td headers="matches">货币符号</td></tr><tr><td valign="top" headers="construct unicode"><tt>\P{InGreek}</tt></td>    <td headers="matches">所有字符,Greek 块中的除外(否定)</td></tr><tr><td valign="top" headers="construct unicode"><tt>[\p{L}&&[^\p{Lu}]]&nbsp;</tt></td>    <td headers="matches">所有字母,大写字母除外(减去)</td></tr><tr><th>&nbsp;</th></tr><tr align="left"><th colspan="2" id="bounds">边界匹配器</th></tr><tr><td valign="top" headers="construct bounds"><tt>^</tt></td>    <td headers="matches">行的开头</td></tr><tr><td valign="top" headers="construct bounds"><tt>$</tt></td>    <td headers="matches">行的结尾</td></tr><tr><td valign="top" headers="construct bounds"><tt>\b</tt></td>    <td headers="matches">单词边界</td></tr><tr><td valign="top" headers="construct bounds"><tt>\B</tt></td>    <td headers="matches">非单词边界</td></tr><tr><td valign="top" headers="construct bounds"><tt>\A</tt></td>    <td headers="matches">输入的开头</td></tr><tr><td valign="top" headers="construct bounds"><tt>\G</tt></td>    <td headers="matches">上一个匹配的结尾</td></tr><tr><td valign="top" headers="construct bounds"><tt>\Z</tt></td>    <td headers="matches">输入的结尾,仅用于最后的<a href="#lt">结束符</a>(如果有的话)</td></tr><tr><td valign="top" headers="construct bounds"><tt>\z</tt></td>    <td headers="matches">输入的结尾</td></tr><tr><th>&nbsp;</th></tr><tr align="left"><th colspan="2" id="greedy">Greedy 数量词</th></tr><tr><td valign="top" headers="construct greedy"><i>X</i><tt>?</tt></td>    <td headers="matches"><i>X</i>,一次或一次也没有</td></tr><tr><td valign="top" headers="construct greedy"><i>X</i><tt>*</tt></td>    <td headers="matches"><i>X</i>,零次或多次</td></tr><tr><td valign="top" headers="construct greedy"><i>X</i><tt>+</tt></td>    <td headers="matches"><i>X</i>,一次或多次</td></tr><tr><td valign="top" headers="construct greedy"><i>X</i><tt>{</tt><i>n</i><tt>}</tt></td>    <td headers="matches"><i>X</i>,恰好 <i>n</i> 次</td></tr><tr><td valign="top" headers="construct greedy"><i>X</i><tt>{</tt><i>n</i><tt>,}</tt></td>    <td headers="matches"><i>X</i>,至少 <i>n</i> 次</td></tr><tr><td valign="top" headers="construct greedy"><i>X</i><tt>{</tt><i>n</i><tt>,</tt><i>m</i><tt>}</tt></td>    <td headers="matches"><i>X</i>,至少 <i>n</i> 次,但是不超过 <i>m</i> 次</td></tr>

⌨️ 快捷键说明

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