<?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 Laning's Blog</title><link>https://blog.laning.org/tags/%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F/</link><description>Recent content in 正则表达式 on Laning's Blog</description><generator>Hugo</generator><language>zh-CN</language><lastBuildDate>Wed, 05 Apr 2023 13:10:08 +0800</lastBuildDate><atom:link href="https://blog.laning.org/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>Python正则化</title><link>https://blog.laning.org/posts/wp-0102/</link><pubDate>Fri, 08 Jul 2022 10:42:23 +0800</pubDate><guid>https://blog.laning.org/posts/wp-0102/</guid><description>&lt;h3 id="python正则化"&gt;Python正则化&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;符号&lt;/th&gt;
&lt;th&gt;解释&lt;/th&gt;
&lt;th&gt;示例&lt;/th&gt;
&lt;th&gt;说明&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;.&lt;/td&gt;
&lt;td&gt;匹配任意字符&lt;/td&gt;
&lt;td&gt;b.t&lt;/td&gt;
&lt;td&gt;可以匹配bat / but / b#t / b1t等&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;\w&lt;/td&gt;
&lt;td&gt;匹配字母/数字/下划线&lt;/td&gt;
&lt;td&gt;b\wt&lt;/td&gt;
&lt;td&gt;可以匹配bat / b1t / b_t等 但不能匹配b#t&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;\s&lt;/td&gt;
&lt;td&gt;匹配空白字符（包括\r、\n、\t等）&lt;/td&gt;
&lt;td&gt;love\syou&lt;/td&gt;
&lt;td&gt;可以匹配love you&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;\d&lt;/td&gt;
&lt;td&gt;匹配数字&lt;/td&gt;
&lt;td&gt;\d\d&lt;/td&gt;
&lt;td&gt;可以匹配01 / 23 / 99等&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;\b&lt;/td&gt;
&lt;td&gt;匹配单词的边界&lt;/td&gt;
&lt;td&gt;\bThe\b&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;^&lt;/td&gt;
&lt;td&gt;匹配字符串的开始&lt;/td&gt;
&lt;td&gt;^The&lt;/td&gt;
&lt;td&gt;可以匹配The开头的字符串&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;$&lt;/td&gt;
&lt;td&gt;匹配字符串的结束&lt;/td&gt;
&lt;td&gt;.exe$&lt;/td&gt;
&lt;td&gt;可以匹配.exe结尾的字符串&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;\W&lt;/td&gt;
&lt;td&gt;匹配非字母/数字/下划线&lt;/td&gt;
&lt;td&gt;b\Wt&lt;/td&gt;
&lt;td&gt;可以匹配b#t / b@t等 但不能匹配but / b1t / b_t等&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;\S&lt;/td&gt;
&lt;td&gt;匹配非空白字符&lt;/td&gt;
&lt;td&gt;love\Syou&lt;/td&gt;
&lt;td&gt;可以匹配love#you等 但不能匹配love you&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;\D&lt;/td&gt;
&lt;td&gt;匹配非数字&lt;/td&gt;
&lt;td&gt;\d\D&lt;/td&gt;
&lt;td&gt;可以匹配9a / 3# / 0F等&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;\B&lt;/td&gt;
&lt;td&gt;匹配非单词边界&lt;/td&gt;
&lt;td&gt;\Bio\B&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;[]&lt;/td&gt;
&lt;td&gt;匹配来自字符集的任意单一字符&lt;/td&gt;
&lt;td&gt;[aeiou]&lt;/td&gt;
&lt;td&gt;可以匹配任一元音字母字符&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;[^]&lt;/td&gt;
&lt;td&gt;匹配不在字符集中的任意单一字符&lt;/td&gt;
&lt;td&gt;[^aeiou]&lt;/td&gt;
&lt;td&gt;可以匹配任一非元音字母字符&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;*&lt;/td&gt;
&lt;td&gt;匹配0次或多次&lt;/td&gt;
&lt;td&gt;\w*&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;+&lt;/td&gt;
&lt;td&gt;匹配1次或多次&lt;/td&gt;
&lt;td&gt;\w+&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;?&lt;/td&gt;
&lt;td&gt;匹配0次或1次&lt;/td&gt;
&lt;td&gt;\w?&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;{N}&lt;/td&gt;
&lt;td&gt;匹配N次&lt;/td&gt;
&lt;td&gt;\w{3}&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;{M,}&lt;/td&gt;
&lt;td&gt;匹配至少M次&lt;/td&gt;
&lt;td&gt;\w{3,}&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;{M,N}&lt;/td&gt;
&lt;td&gt;匹配至少M次至多N次&lt;/td&gt;
&lt;td&gt;\w{3,6}&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;|&lt;/td&gt;
&lt;td&gt;分支&lt;/td&gt;
&lt;td&gt;foo|bar&lt;/td&gt;
&lt;td&gt;可以匹配foo或者bar&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;(?#)&lt;/td&gt;
&lt;td&gt;注释&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;(exp)&lt;/td&gt;
&lt;td&gt;匹配exp并捕获到自动命名的组中&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;(?&amp;lt;name&amp;gt;exp)&lt;/td&gt;
&lt;td&gt;匹配exp并捕获到名为name的组中&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;(?:exp)&lt;/td&gt;
&lt;td&gt;匹配exp但是不捕获匹配的文本&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;(?=exp)&lt;/td&gt;
&lt;td&gt;匹配exp前面的位置&lt;/td&gt;
&lt;td&gt;\b\w+(?=ing)&lt;/td&gt;
&lt;td&gt;可以匹配I&amp;rsquo;m dancing中的danc&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;(?&amp;lt;=exp)&lt;/td&gt;
&lt;td&gt;匹配exp后面的位置&lt;/td&gt;
&lt;td&gt;(?&amp;lt;=\bdanc)\w+\b&lt;/td&gt;
&lt;td&gt;可以匹配I love dancing and reading中的第一个ing&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;(?!exp)&lt;/td&gt;
&lt;td&gt;匹配后面不是exp的位置&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;(?&amp;lt;!exp)&lt;/td&gt;
&lt;td&gt;匹配前面不是exp的位置&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;*?&lt;/td&gt;
&lt;td&gt;重复任意次，但尽可能少重复&lt;/td&gt;
&lt;td&gt;a.&lt;em&gt;b a.&lt;/em&gt;?b&lt;/td&gt;
&lt;td&gt;将正则表达式应用于aabab，前者会匹配整个字符串aabab，后者会匹配aab和ab两个字符串&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;+?&lt;/td&gt;
&lt;td&gt;重复1次或多次，但尽可能少重复&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;??&lt;/td&gt;
&lt;td&gt;重复0次或1次，但尽可能少重复&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;{M,N}?&lt;/td&gt;
&lt;td&gt;重复M到N次，但尽可能少重复&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;{M,}?&lt;/td&gt;
&lt;td&gt;重复M次以上，但尽可能少重复&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="python对正则表达式的支持"&gt;Python对正则表达式的支持&lt;/h3&gt;
&lt;p&gt;Python提供了re模块来支持正则表达式相关操作，下面是re模块中的核心函数。&lt;/p&gt;</description></item></channel></rss>