正则表达式基础篇
<h2 id="介绍">介绍</h2><blockquote>
<p>正则表达式提供强大的查找和替换功能,绝大部分语言(C#、Python、Java等)及大多数工具(Notepad++、VsCode、Vs等)都提供内部支持。</p>
</blockquote>
<h2 id="分类">分类</h2>
<ul>
<li><strong>单字符匹配</strong>(Single Match):用来匹配单个字符;</li>
<li><strong>字符集匹配</strong>(Sets Match):用来匹配多个字符;</li>
<li><strong>特殊字符匹配</strong>(Special Match):此处代指转义字符;</li>
<li><strong>空白字符匹配</strong>(Whitespace Match):包含换行符、制表符等;</li>
<li><strong>字符类型匹配</strong>(Type Match):用来匹配字母、数字、空白字符等;</li>
<li><strong>重复匹配</strong>(Repeat Match):用来匹配零次、一次、多次等;</li>
<li><strong>位置匹配</strong>(Position Match):用来匹配字母、字符边界位置;</li>
<li><strong>子表达式匹配</strong><sup>高级</sup>(Subexpression Match):用来提供分组匹配;</li>
<li><strong>反向引用匹配</strong><sup>高级</sup>(Backreference Match):同时搭配子表达式匹配,可提供强大的替换功能;</li>
<li><strong>前后匹配</strong><sup>高级</sup>(Lookaround Match):用来向前匹配和向后匹配;</li>
<li><strong>条件匹配</strong><sup>高级</sup>(Condition Match):一般搭配反向引用匹配和前后匹配来使用。</li>
</ul>
<h2 id="元字符速览表">元字符速览表</h2>
<table>
<thead>
<tr>
<th>类别</th>
<th>元字符</th>
<th>备注</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td>单字符</td>
<td>.</td>
<td></td>
<td>匹配单个任意字符</td>
</tr>
<tr>
<td>字符集</td>
<td>[]</td>
<td></td>
<td>匹配<strong>多个字符</strong>中的一个</td>
</tr>
<tr>
<td></td>
<td>[-]</td>
<td></td>
<td>匹配<strong>字符范围</strong>中的一个</td>
</tr>
<tr>
<td></td>
<td>[^]</td>
<td></td>
<td>匹配除当前字符集<strong>以外的</strong>字符</td>
</tr>
<tr>
<td>特殊</td>
<td>\</td>
<td></td>
<td>用于转义其他元字符</td>
</tr>
<tr>
<td>空白</td>
<td>[\b]</td>
<td></td>
<td>退格键(Backspace)</td>
</tr>
<tr>
<td></td>
<td>\f</td>
<td></td>
<td>换页键(Form feed)</td>
</tr>
<tr>
<td></td>
<td>\n</td>
<td></td>
<td>换行(Line feed)</td>
</tr>
<tr>
<td></td>
<td>\r</td>
<td></td>
<td>回车(Carriage return)</td>
</tr>
<tr>
<td></td>
<td>\t</td>
<td></td>
<td>水平制表符(Tab)</td>
</tr>
<tr>
<td></td>
<td>\v</td>
<td></td>
<td>垂直制表符(Vertical tab)</td>
</tr>
<tr>
<td>类型</td>
<td>\d</td>
<td></td>
<td>匹配任何<strong>数字</strong>字符</td>
</tr>
<tr>
<td></td>
<td>\D</td>
<td>[^0-9]</td>
<td>匹配任何<strong>非数字</strong>字符</td>
</tr>
<tr>
<td></td>
<td>\w</td>
<td></td>
<td>匹配任何<strong>字母、数字、下划线</strong></td>
</tr>
<tr>
<td></td>
<td>\W</td>
<td>[^a-zA-Z0-9_]</td>
<td>匹配字母、数字、下划线以外的字符</td>
</tr>
<tr>
<td></td>
<td>\s</td>
<td>[\f\n\r\t\v]</td>
<td>匹配任何<strong>空白</strong>字符</td>
</tr>
<tr>
<td></td>
<td>\S</td>
<td>[^\f\n\r\t\v]</td>
<td>匹配任何<strong>非空白</strong>字符</td>
</tr>
<tr>
<td></td>
<td>\x</td>
<td></td>
<td>匹配十六进制值对应的ASCII字符</td>
</tr>
<tr>
<td></td>
<td>\0</td>
<td></td>
<td>匹配八进制值对应的ASCII字符</td>
</tr>
<tr>
<td>重复</td>
<td>+</td>
<td></td>
<td>匹配<strong>一次</strong>或多次字符</td>
</tr>
<tr>
<td></td>
<td>*</td>
<td></td>
<td>匹配<strong>零次</strong>或多次字符</td>
</tr>
<tr>
<td></td>
<td>?</td>
<td></td>
<td>匹配<strong>零次或一次</strong>字符</td>
</tr>
<tr>
<td></td>
<td><em>{n}</em></td>
<td></td>
<td>确定次数匹配</td>
</tr>
<tr>
<td></td>
<td><em>{n1,n2}</em></td>
<td></td>
<td>次数范围匹配</td>
</tr>
<tr>
<td></td>
<td><em>{n,}</em></td>
<td></td>
<td>最小次数匹配</td>
</tr>
<tr>
<td></td>
<td>+?</td>
<td></td>
<td>匹配<strong>一个</strong>或多个字符<strong>(懒惰)</strong></td>
</tr>
<tr>
<td></td>
<td>*?</td>
<td></td>
<td>匹配<strong>零个</strong>或多个字符<strong>(懒惰)</strong></td>
</tr>
<tr>
<td></td>
<td>{n,}?</td>
<td></td>
<td>次数范围匹配<strong>(懒惰)</strong></td>
</tr>
<tr>
<td>位置</td>
<td>\b</td>
<td></td>
<td>匹配<strong>单词开始或者结束</strong>位置</td>
</tr>
<tr>
<td></td>
<td>^</td>
<td></td>
<td>匹配<strong>字符串开始</strong>位置</td>
</tr>
<tr>
<td></td>
<td>$</td>
<td></td>
<td>匹配<strong>字符串结束</strong>位置</td>
</tr>
<tr>
<td></td>
<td>(?m)</td>
<td><strong>部分支持</strong></td>
<td>置于开始处,代表支持<strong>匹配多行</strong></td>
</tr>
<tr>
<td>子表达式</td>
<td>()</td>
<td></td>
<td>用于<strong>成组匹配</strong></td>
</tr>
<tr>
<td>反向引用</td>
<td>\n $n</td>
<td><strong>平台间格式有差异</strong></td>
<td>用于引用<strong>第n项</strong>子表达式,索引<strong>从1开始</strong></td>
</tr>
<tr>
<td></td>
<td>\E</td>
<td>替换时用</td>
<td>作为<code>\L</code>或者<code>\U</code>的<strong>终止符</strong></td>
</tr>
<tr>
<td></td>
<td>\l</td>
<td>替换时用</td>
<td>下一个字符转换成<strong>小写</strong></td>
</tr>
<tr>
<td></td>
<td>\L</td>
<td>替换时用</td>
<td>下一个字符至<code>\E</code>转换成<strong>小写</strong></td>
</tr>
<tr>
<td></td>
<td>\u</td>
<td>替换时用</td>
<td>下一个字符转换成<strong>大写</strong></td>
</tr>
<tr>
<td></td>
<td>\U</td>
<td>替换时用</td>
<td>下一个字符至<code>\E</code>转换成<strong>大写</strong></td>
</tr>
<tr>
<td>前后</td>
<td>(?=)</td>
<td><strong>不包括匹配字符</strong></td>
<td>根据匹配字符<strong>向前</strong>查找内容</td>
</tr>
<tr>
<td></td>
<td>(?<=)</td>
<td><strong>部分支持</strong></td>
<td>根据匹配字符<strong>向后</strong>查找内容</td>
</tr>
<tr>
<td></td>
<td>(?!)</td>
<td></td>
<td>根据<strong>非匹配</strong>字符<strong>向前</strong>查找内容</td>
</tr>
<tr>
<td></td>
<td>(?<!)</td>
<td><strong>部分支持</strong></td>
<td>根据<strong>非匹配</strong>字符<strong>向后</strong>查找内容</td>
</tr>
<tr>
<td>条件</td>
<td>(?(backref)true)</td>
<td></td>
<td><strong>反向引用</strong>条件匹配</td>
</tr>
<tr>
<td></td>
<td>(?(look)true)</td>
<td></td>
<td><strong>前后</strong>条件匹配</td>
</tr>
</tbody>
</table>
<h2 id="参考链接">参考链接</h2>
<ol>
<li>学习正则表达式书籍;</li>
<li>在线正则表达式工具网站。</li>
</ol><br><br>
来源:https://www.cnblogs.com/monkeyhua/p/19762115
頁:
[1]