<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>正则表达式 on withdong02</title>
    <link>https://withdong02.top/tags/%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F/</link>
    <description>Recent content in 正则表达式 on withdong02</description>
    <image>
      <title>withdong02</title>
      <url>https://withdong02.top/%3Clink%20or%20path%20of%20image%20for%20opengraph,%20twitter-cards%3E</url>
      <link>https://withdong02.top/%3Clink%20or%20path%20of%20image%20for%20opengraph,%20twitter-cards%3E</link>
    </image>
    <generator>Hugo</generator>
    <language>zh</language>
    <lastBuildDate>Mon, 22 Sep 2025 16:40:40 +0000</lastBuildDate>
    <atom:link href="https://withdong02.top/tags/%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>正则表达式</title>
      <link>https://withdong02.top/posts/%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F/</link>
      <pubDate>Mon, 22 Sep 2025 16:40:40 +0000</pubDate>
      <guid>https://withdong02.top/posts/%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F/</guid>
      <description>&lt;h2 id=&#34;介绍&#34;&gt;介绍&lt;/h2&gt;
&lt;p&gt;正则表达式（regular expression），常简写为regex，用简单字符串来描述、匹配文中全部匹配指定格式的字符串。人话讲就是根据一些规则制定一个字符串，然后你可以用这个字符串来筛选满足规则的字符串。许多程序设计语言都支持用正则表达式操作字符串，这里主要介绍正则表达式在Java中的运用。&lt;/p&gt;
&lt;p&gt;不同编程语言的正则表达式引擎有所不同，这里提供一个&lt;a href=&#34;https://deerchao.cn/tutorials/regex/diffs.html&#34;&gt;链接&lt;/a&gt;，里面详细介绍了不同语言对各种特性的支持程度。&lt;/p&gt;
&lt;h2 id=&#34;快速使用&#34;&gt;快速使用&lt;/h2&gt;
&lt;p&gt;先说明一下&lt;code&gt;\&lt;/code&gt;的使用。&lt;/p&gt;
&lt;p&gt;在Java普通字符串中，反斜杠&lt;code&gt;\&lt;/code&gt;本身就是转义字符，比如&lt;code&gt;\n&lt;/code&gt;被转义为&amp;quot;换行符&amp;quot;，又比如&lt;code&gt;\\&lt;/code&gt;被转义为&lt;code&gt;\&lt;/code&gt;。而正则表达式也有自己的语法，它也使用反斜杠作为转义字符，比如&lt;code&gt;\d&lt;/code&gt;表示“匹配一个数字”。&lt;/p&gt;
&lt;p&gt;那么二者结合起来呢🧐。以&lt;code&gt;&amp;quot;\\d&amp;quot;&lt;/code&gt;为例。编译器看到字符串&lt;code&gt;&amp;quot;\\d&amp;quot;&lt;/code&gt;会根据字符串规则将其转换为两个字符，一个&lt;code&gt;\&lt;/code&gt;，一个&lt;code&gt;d&lt;/code&gt;。接下来正则表达式引擎会对其进行解析，最终生效的正则模式就是&lt;code&gt;\d&lt;/code&gt;。可以这样理解：&lt;strong&gt;正则表达式需要 &lt;code&gt;\d&lt;/code&gt; 来匹配数字。但在Java字符串里，一个 &lt;code&gt;\&lt;/code&gt; 需要写成 &lt;code&gt;\\&lt;/code&gt;。所以，要把正则的 &lt;code&gt;\d&lt;/code&gt; 放到Java字符串里，就变成了 &lt;code&gt;\\d&lt;/code&gt;。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;到底需不需要两个&lt;code&gt;\\&lt;/code&gt;，idea会给你答案。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;java.util.regex&lt;/code&gt;包是Java标准库中用于支持正则表达式操作的包，主要涉及到&lt;code&gt;Pattern&lt;/code&gt;和&lt;code&gt;Matcher&lt;/code&gt;这两个类的操作。这里有个简单的例子：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-Java&#34; data-lang=&#34;Java&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;String&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;pattern&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;java\\d&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;String&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;text1&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;java1&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;String&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;text2&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;javaBad&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;Pattern&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;p&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Pattern&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;na&#34;&gt;compile&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;pattern&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;Matcher&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;m&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;p&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;na&#34;&gt;matcher&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;text1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;System&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;na&#34;&gt;out&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;na&#34;&gt;println&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;m&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;na&#34;&gt;matches&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;());&lt;/span&gt;&lt;span class=&#34;c1&#34;&gt;//true&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;m&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;p&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;na&#34;&gt;matcher&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;text2&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;System&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;na&#34;&gt;out&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;na&#34;&gt;println&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;m&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;na&#34;&gt;matches&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;());&lt;/span&gt;&lt;span class=&#34;c1&#34;&gt;//false&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;先调用&lt;code&gt;Pattern&lt;/code&gt;类的静态方法&lt;code&gt;compile&lt;/code&gt;（参数为正则表达式）生成一个实例对象，通过调用该对象的&lt;code&gt;matcher&lt;/code&gt;方法（参数为待匹配文本）生成一个&lt;code&gt;Matcher&lt;/code&gt;实例。接下来就有很多方法供你选择，这里我调用的是&lt;code&gt;matches&lt;/code&gt;方法来输出布尔值，在例子中体现为字符串Java后面能否匹配上数字。&lt;code&gt;Matcher&lt;/code&gt;类里还有个&lt;code&gt;find&lt;/code&gt;方法也很常见，下文会提到。&lt;/p&gt;
&lt;h2 id=&#34;匹配规则详解&#34;&gt;匹配规则详解&lt;/h2&gt;
&lt;h3 id=&#34;简单匹配&#34;&gt;简单匹配&lt;/h3&gt;
&lt;p&gt;为方便演示，接下来的示例代码使用&lt;code&gt;String&lt;/code&gt;类的&lt;code&gt;matches&lt;/code&gt;方法，该方法底层原理仍然是&lt;code&gt;Pattern&lt;/code&gt;和&lt;code&gt;Matcher&lt;/code&gt;这两个类的使用，后面有详细说明。下面示例参考&lt;a href=&#34;https://liaoxuefeng.com/books/java/reg-exp/match-rules/index.html&#34;&gt;廖雪峰&lt;/a&gt;和&lt;a href=&#34;https://www.runoob.com/java/java-regular-expressions.html&#34;&gt;菜鸟教程&lt;/a&gt;。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;匹配任意字符：&lt;/strong&gt;&lt;code&gt;.&lt;/code&gt;可以匹配除&lt;code&gt;\r\n&lt;/code&gt;之外的任何单个字符。如&lt;code&gt;a.c&lt;/code&gt;可以匹配&lt;code&gt;abc&lt;/code&gt;但不能匹配&lt;code&gt;abbc&lt;/code&gt;和&lt;code&gt;ac&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;匹配数字：&lt;/strong&gt;&lt;code&gt;\d&lt;/code&gt;匹配 0~9 的数字，同样只匹配一个字符。&lt;strong&gt;匹配非数字：&lt;/strong&gt;&lt;code&gt;\D&lt;/code&gt;匹配非数字。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;匹配常用字符：&lt;/strong&gt;&lt;code&gt;\w&lt;/code&gt;可以匹配一个字母、数字或下划线&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;匹配空格字符：&lt;/strong&gt;&lt;code&gt;\s&lt;/code&gt;可以匹配任何空白字符，包括空格、制表符、换页符等。与&lt;code&gt;[\f\n\r\t\v]&lt;/code&gt;等效。&lt;code&gt;\W&lt;/code&gt;和&lt;code&gt;\S&lt;/code&gt;和&lt;code&gt;\D&lt;/code&gt;同样是反着来的。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;重复匹配：&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;*&lt;/code&gt;可以匹配任意个字符，包括0个字符。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;+&lt;/code&gt;可以匹配至少一个字符。比如&lt;code&gt;A\d+&lt;/code&gt;可以匹配&lt;code&gt;A11111&lt;/code&gt;和&lt;code&gt;A0&lt;/code&gt;。但不能匹配&lt;code&gt;A&lt;/code&gt;,因为至少一个字符。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;?&lt;/code&gt;可以匹配0个或一个字符。&lt;/p&gt;
&lt;p&gt;如果想精确指定n个字符，使用&lt;code&gt;{n}&lt;/code&gt;，比如&lt;code&gt;A\d{3}&lt;/code&gt;可以匹配到&lt;code&gt;A123&lt;/code&gt;。指定匹配n~m个字符，用&lt;code&gt;{n,m}&lt;/code&gt;， 例如&lt;code&gt;A\d{3,5}&lt;/code&gt;可以精确匹配&lt;code&gt;A123&lt;/code&gt; &lt;code&gt;A1234&lt;/code&gt; &lt;code&gt;A12345&lt;/code&gt;。&lt;code&gt;{n,}&lt;/code&gt;表示可以匹配至少n个字符。m和n为非负整数，其中n &amp;lt;= m。再举一个例子:&lt;code&gt;o{2}&lt;/code&gt;和Bob中的一个o不匹配，而匹配food中的两个o。&lt;strong&gt;不同表达式可能是等效的，比如&lt;code&gt;o{0,1}&lt;/code&gt;和&lt;code&gt;o?&lt;/code&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;来个综合点的例子：假如电话号码规则如下:3&lt;del&gt;4位数字表示区位，7&lt;/del&gt;8位数字表示电话，中间用&lt;code&gt;-&lt;/code&gt;连接。答案：&lt;code&gt;\\d{3,4}-\\d{7,8}&lt;/code&gt;。对于连字符&lt;code&gt;-&lt;/code&gt;，一般情况下只是一个普通字符，不需要进行转义，当然写上两个反斜杠也是对的，idea会给出提示移除多余的反斜杠。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-Java&#34; data-lang=&#34;Java&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;String&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;pattern&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;\\d{3,4}-\\d{7,8}&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;&lt;span class=&#34;c1&#34;&gt;//不知道需不需要写\？idea会给你的答案&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;String&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;text1&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;0123-123456&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;String&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;text2&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;010-1234567&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;System&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;na&#34;&gt;out&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;na&#34;&gt;println&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;text1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;na&#34;&gt;matches&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;pattern&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;));&lt;/span&gt;&lt;span class=&#34;c1&#34;&gt;//false&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;System&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;na&#34;&gt;out&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;na&#34;&gt;println&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;text2&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;na&#34;&gt;matches&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;pattern&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;));&lt;/span&gt;&lt;span class=&#34;c1&#34;&gt;//true&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;复杂匹配&#34;&gt;复杂匹配：&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;匹配开头和结尾：&lt;/strong&gt;&lt;code&gt;^&lt;/code&gt;匹配输入字符串开始的位置，&lt;code&gt;$&lt;/code&gt;匹配输入字符串结束的位置。他们俩的作用是将匹配过程限制在整个字符串上，避免了在子串中成功匹配的情况。其实&lt;code&gt;matches()&lt;/code&gt;方法的行为已经隐含了&lt;code&gt;^...$&lt;/code&gt;锚点的效果，而&lt;code&gt;find()&lt;/code&gt;方法则没有。matches方法尝试将整个输入序列与模式匹配，而find方法会在输入序列中查找下一个与模式匹配的子序列。仔细品味这两个方法的名字，你也许会理解。&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
