<?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 Hacper&#39;s Blog</title>
    <link>https://hacperme.com/tags/%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F/</link>
    <description>Recent content in 正则表达式 on Hacper&#39;s Blog</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>zh</language>
    <lastBuildDate>Sun, 06 Jun 2021 22:43:57 +0800</lastBuildDate>
    <atom:link href="https://hacperme.com/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://hacperme.com/posts/notes/2021-06-06-regular_expression/</link>
      <pubDate>Sun, 06 Jun 2021 22:43:57 +0800</pubDate>
      <guid>https://hacperme.com/posts/notes/2021-06-06-regular_expression/</guid>
      <description>定位 表达式 量词 字符组 POSIX 字符集 描述 [[:alnum:]] 字母数字字符 （字母和数字） [[:alpha:]] 字母字符（字母） [[:ascii:]] ASCII字符 （总共128个） [[:blank:]] 空白字符 [[:ctrl:]] 控制字符 [[:digit:]] 数字 [[:graph:]] 图</description>
      <content:encoded><![CDATA[<h2 id="定位">定位</h2>
<p><img loading="lazy" src="https://cdn.jsdelivr.net/gh/hacperme/picx_hosting/raw/master/20210507/%e5%ae%9a%e4%bd%8d.yjf3jw4m6eo.png" alt=""  />
</p>
<h2 id="表达式">表达式</h2>
<p><img loading="lazy" src="https://cdn.jsdelivr.net/gh/hacperme/picx_hosting/raw/master/20210507/%e8%a1%a8%e8%be%be%e5%bc%8f.1jareij8pwlc.png" alt=""  />
</p>
<h2 id="量词">量词</h2>
<p><img loading="lazy" src="https://cdn.jsdelivr.net/gh/hacperme/picx_hosting/raw/master/20210507/%e9%87%8f%e8%af%8d1.4rsfwbeuejs0.png" alt=""  />
</p>
<p><img loading="lazy" src="https://cdn.jsdelivr.net/gh/hacperme/picx_hosting/raw/master/20210507/%e9%87%8f%e8%af%8d2.3w50kxb49dk0.png" alt=""  />
</p>
<p><img loading="lazy" src="https://cdn.jsdelivr.net/gh/hacperme/picx_hosting/raw/master/20210507/%e9%87%8f%e8%af%8d3.69qjn4ikif80.png" alt=""  />
</p>
<h2 id="字符组">字符组</h2>
<p><img loading="lazy" src="https://cdn.jsdelivr.net/gh/hacperme/picx_hosting/raw/master/20210507/%e5%ad%97%e7%ac%a6%e7%bb%84.6aekjt1hkic0.png" alt=""  />
</p>
<table>
<thead>
<tr>
<th><!-- raw HTML omitted -->POSIX 字符集<!-- raw HTML omitted --></th>
<th><!-- raw HTML omitted -->描述<!-- raw HTML omitted --></th>
</tr>
</thead>
<tbody>
<tr>
<td>[[:alnum:]]</td>
<td>字母数字字符 （字母和数字）</td>
</tr>
<tr>
<td>[[:alpha:]]</td>
<td>字母字符（字母）</td>
</tr>
<tr>
<td>[[:ascii:]]</td>
<td>ASCII字符 （总共128个）</td>
</tr>
<tr>
<td>[[:blank:]]</td>
<td>空白字符</td>
</tr>
<tr>
<td>[[:ctrl:]]</td>
<td>控制字符</td>
</tr>
<tr>
<td>[[:digit:]]</td>
<td>数字</td>
</tr>
<tr>
<td>[[:graph:]]</td>
<td>图形字符</td>
</tr>
<tr>
<td>[[:lower:]]</td>
<td>小写字母</td>
</tr>
<tr>
<td>[[:print:]]</td>
<td>可打印字符</td>
</tr>
<tr>
<td>[[:punct:]]</td>
<td>标点符号</td>
</tr>
<tr>
<td>[[:space:]]</td>
<td>空格字符</td>
</tr>
<tr>
<td>[[:upper:]]</td>
<td>大写字母</td>
</tr>
<tr>
<td>[[:word:]]</td>
<td>单词字符</td>
</tr>
<tr>
<td>[[:xdigit:]]</td>
<td>十六进制数字</td>
</tr>
</tbody>
</table>
<h2 id="关于量词的贪心懒惰占有">关于量词的贪心、懒惰、占有</h2>
<ul>
<li>量词首次尝试匹配整个字符串，如果失败则回退一个字符后再次尝试，这个过程叫做回溯（backtracking）。</li>
<li>量词自身是贪心的。</li>
<li>贪心的量词会首先匹配整个字符串。尝试匹配时，它会选定尽可能多的内容，也就是整个输入，它会每次回退一个字符，直到找到匹配的内容或者没有字符可尝试为止。此外，它还记录所有的行为，因此资源的消耗较大。</li>
<li>懒惰的量词会从目标的起始位置开始尝试寻找匹配，每次检查字符串的一个字符，寻找它要匹配的内容，最后，它会尝试匹配整个字符串。</li>
<li>占有量词会覆盖整个目标然后尝试寻找匹配内容，但它只尝试一次，不会回溯。</li>
</ul>
]]></content:encoded>
    </item>
  </channel>
</rss>
