<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>正则 on 庞玉栋个人博客</title><link>https://pangyd.com/tags/%E6%AD%A3%E5%88%99/</link><description>Recent content in 正则 on 庞玉栋个人博客</description><generator>Hugo</generator><language>zh-cn</language><lastBuildDate>Sat, 18 Aug 2018 09:21:03 +0800</lastBuildDate><atom:link href="https://pangyd.com/tags/%E6%AD%A3%E5%88%99/index.xml" rel="self" type="application/rss+xml"/><item><title>re正则表达式学习</title><link>https://pangyd.com/post/194-re/</link><pubDate>Wed, 01 Aug 2018 14:24:09 +0800</pubDate><guid>https://pangyd.com/post/194-re/</guid><description>&lt;p>&lt;/p>&lt;p>
&lt;/p>&lt;p style="text-align: left" align="left">&lt;span>&lt;span lang="EN-US">&lt;/span>&lt;/span>&lt;span>&lt;span lang="EN-US">Python&lt;/span>&lt;/span>&lt;span>&lt;span>环境：&lt;span lang="EN-US">3.6&lt;/span>&lt;/span>&lt;/span>&lt;span>&lt;span lang="EN-US">&lt;/span>&lt;/span>
&lt;/p>&lt;p style="text-align: left" align="left">&lt;span>&lt;span>需要的库：&lt;span lang="EN-US">re&lt;/span>正则表达式&lt;/span>&lt;/span>&lt;span>&lt;span lang="EN-US">&lt;/span>&lt;/span>&lt;/p>
&lt;p style="text-align: left" align="left">&lt;span>&lt;span>正则表达式的学习&lt;/span>&lt;/span>&lt;span>&lt;span lang="EN-US">&lt;/span>&lt;/span>&lt;/p>
&lt;p style="text-align: left" align="left">&lt;span>&lt;span lang="EN-US">1&lt;/span>&lt;/span>&lt;span>&lt;span>，原子时正则表达式中最基本的组成单位，每个正则表达式至少要包含一个原子，常见的原子有以下几类：&lt;/span>&lt;/span>&lt;span>&lt;span lang="EN-US">&lt;/span>&lt;/span>&lt;/p>
&lt;p style="text-align: left" align="left">&lt;span>&lt;span>普通字符作为原子使用，非打印字符作为原子使用，通用字符作为原子，原子表&lt;/span>&lt;/span>&lt;span>&lt;span lang="EN-US">&lt;/span>&lt;/span>&lt;/p>
&lt;pre>&lt;span>普通字符作为原子：比如数字大小写字符，下划线等 ：&lt;/span>&lt;span>&lt;span lang="EN-US">&lt;/span>&lt;/span>&lt;/pre>&lt;pre>&lt;span lang="EN-US">pattern = &lt;/span>&lt;b>&lt;span lang="EN-US">'yue'&lt;br>
&lt;p>&lt;/span>&lt;/b>&lt;span lang="EN-US">string=&lt;/span>&lt;b>&lt;span lang="EN-US">&amp;lsquo;&lt;a href="https://yum.iqianyue.com">https://yum.iqianyue.com&lt;/a>&amp;rsquo;&lt;br>
&lt;/span>&lt;/b>&lt;span lang="EN-US">result=re.search(pattern,string)&lt;br>
&lt;/span>&lt;span lang="EN-US">print&lt;/span>&lt;span lang="EN-US">(result)&lt;/span>&lt;/pre>&lt;pre>&lt;span>输出：&lt;span lang="EN-US">&amp;lt;_sre.SRE_Match object; span=(16, 19), match=&amp;lsquo;yue&amp;rsquo;&amp;gt;&lt;span>&lt;span>&lt;/span>&lt;/span>&lt;/span>&lt;/span>&lt;/pre>&lt;pre>&lt;span>非打印字符：在字符串中用于格式控制的符号，比如换行符：&lt;/span>&lt;span>&lt;span lang="EN-US">&lt;/span>&lt;/span>&lt;/pre>&lt;pre>&lt;span lang="EN-US">pattern = &lt;/span>&lt;b>&lt;span lang="EN-US">&amp;rsquo;&lt;/span>&lt;/b>&lt;b>&lt;span lang="EN-US">\n&lt;/span>&lt;/b>&lt;b>&lt;span lang="EN-US">&amp;rsquo;&lt;br>
&lt;/span>&lt;/b>&lt;span lang="EN-US">string=&lt;/span>&lt;b>&lt;span lang="EN-US">&amp;lsquo;&amp;lsquo;&amp;lsquo;&lt;a href="https://yum.iqianyue.com">https://yum.iqianyue.com&lt;/a>&lt;br>
&lt;a href="https://baidu.com">https://baidu.com&lt;/a>&lt;br>
&amp;lsquo;&amp;rsquo;&amp;rsquo;&lt;br>
&lt;/span>&lt;/b>&lt;span lang="EN-US">result=re.search(pattern,string)&lt;/span>&lt;/pre>&lt;/p>
&lt;p style="text-align: left" align="left">&lt;span>&lt;span>输出结果：&lt;span lang="EN-US">&amp;lt;_sre.SRE_Match
object; span=(23, 24), match='\n'&amp;gt;&lt;/span>&lt;/span>&lt;/span>&lt;span>&lt;span lang="EN-US">&lt;/span>&lt;/span>&lt;/p>
&lt;p style="text-align: left" align="left">&lt;span>&lt;span>通用字符作为原子：既用一个原子就可以匹配一类字符&lt;/span>&lt;/span>&lt;span>&lt;span lang="EN-US">&lt;/span>&lt;/span>&lt;/p>
&lt;p style="text-align: left" align="left">&lt;span>&lt;span lang="EN-US">\w:&lt;/span>&lt;/span>&lt;span>&lt;span>匹配任意一个字母，数字，下划线&lt;/span>&lt;/span>&lt;span>&lt;span lang="EN-US">&lt;/span>&lt;/span>&lt;/p>
&lt;p style="text-align: left" align="left">&lt;span>&lt;span lang="EN-US">\W:&lt;/span>&lt;/span>&lt;span>&lt;span>匹配除字母，数字，下划线以外的任意一个字符&lt;/span>&lt;/span>&lt;span>&lt;span lang="EN-US">&lt;/span>&lt;/span>&lt;/p>
&lt;p style="text-align: left" align="left">&lt;span>&lt;span lang="EN-US">\d:&lt;/span>&lt;/span>&lt;span>&lt;span>匹配任意一个十进制数&lt;/span>&lt;/span>&lt;span>&lt;span lang="EN-US">&lt;/span>&lt;/span>&lt;/p>
&lt;p style="text-align: left" align="left">&lt;span>&lt;span lang="EN-US">\D:&lt;/span>&lt;/span>&lt;span>&lt;span>匹配除十进制数以外的任意一个其他字符&lt;/span>&lt;/span>&lt;span>&lt;span lang="EN-US">&lt;/span>&lt;/span>&lt;/p>
&lt;p style="text-align: left" align="left">&lt;span>&lt;span lang="EN-US">\s&lt;/span>&lt;/span>&lt;span>&lt;span>：匹配任意一个空白字符&lt;/span>&lt;/span>&lt;span>&lt;span lang="EN-US">&lt;/span>&lt;/span>&lt;/p>
&lt;p style="text-align: left" align="left">&lt;span>&lt;span lang="EN-US">\S:&lt;/span>&lt;/span>&lt;span>&lt;span>匹配除空白字符外的任意一个其他字符&lt;/span>&lt;/span>&lt;span>&lt;span lang="EN-US">&lt;/span>&lt;/span>&lt;/p>
&lt;p style="text-align: left" align="left">&lt;span>&lt;span lang="EN-US">Python %&lt;/span>&lt;/span>&lt;span>&lt;span>操作符&lt;/span>&lt;/span>&lt;span>&lt;span lang="EN-US">&lt;/span>&lt;/span>&lt;/p>
&lt;p style="text-align: left" align="left">&lt;b>&lt;span lang="EN-US">%s &lt;/span>&lt;/b>&lt;span>字符串&lt;span lang="EN-US"> (&lt;/span>采用&lt;span lang="EN-US">str()&lt;/span>的显示&lt;span lang="EN-US">)&lt;/span>&lt;/span>&lt;/p>
&lt;p style="text-align: left" align="left">&lt;b>&lt;span lang="EN-US">%r &lt;/span>&lt;/b>&lt;span>字符串&lt;span lang="EN-US"> (&lt;/span>采用&lt;span lang="EN-US">repr()&lt;/span>的显示&lt;span lang="EN-US">)&lt;/span>&lt;/span>&lt;/p>
&lt;p style="text-align: left" align="left">&lt;b>&lt;span lang="EN-US">%c&lt;/span>&lt;/b>&lt;span lang="EN-US"> &lt;/span>&lt;span>单个字符&lt;span lang="EN-US">&lt;/span>&lt;/span>&lt;/p>
&lt;p style="text-align: left" align="left">&lt;b>&lt;span lang="EN-US">%d&lt;/span>&lt;/b>&lt;span lang="EN-US"> &lt;/span>&lt;span>十进制整数&lt;span lang="EN-US">&lt;/span>&lt;/span>&lt;/p>
&lt;p style="text-align: left" align="left">&lt;b>&lt;span lang="EN-US">%i &lt;/span>&lt;/b>&lt;span>十进制整数&lt;span lang="EN-US">&lt;/span>&lt;/span>&lt;/p>
&lt;p style="text-align: left" align="left">&lt;b>&lt;span lang="EN-US">%f&lt;/span>&lt;/b>&lt;span lang="EN-US"> &lt;/span>&lt;span>浮点数&lt;span lang="EN-US">&lt;/span>&lt;/span>&lt;/p>
&lt;p style="text-align: left" align="left">&lt;b>&lt;span lang="EN-US">%F&lt;/span>&lt;/b>&lt;span lang="EN-US"> &lt;/span>&lt;span>浮点数，与上相同&lt;span lang="EN-US">%% &lt;/span>字符&lt;span lang="EN-US">"%"&lt;/span>&lt;/span>&lt;/p>
&lt;pre>&lt;span lang="EN-US">pattern = &lt;/span>&lt;b>&lt;span lang="EN-US">'\wpython\w'&lt;br>
&lt;/span>&lt;/b>&lt;span lang="EN-US">string=&lt;/span>&lt;b>&lt;span lang="EN-US">'abcdfphp3145pythony_py'&lt;br>
&lt;/span>&lt;/b>&lt;span lang="EN-US">result=re.search(pattern,string)&lt;/span>&lt;/pre>
&lt;p style="text-align: left" align="left">&lt;span>输出：&lt;span lang="EN-US">&amp;lt;_sre.SRE_Match object; span=(11, 19), match='5pythony'&amp;gt;&lt;/span>&lt;/span>&lt;/p>
&lt;p style="text-align: left" align="left">&lt;span>&lt;span>原子表：原子表用&lt;span lang="EN-US">[ ]&lt;/span>表示，匹配时会取该原子表中的任意一个原子进行匹配&lt;/span>&lt;/span>&lt;span>&lt;span lang="EN-US">&lt;/span>&lt;/span>&lt;/p>
&lt;p style="text-align: left" align="left">&lt;span>&lt;span lang="EN-US">[abc]:&lt;/span>&lt;/span>&lt;span>&lt;span>表示之匹配&lt;span lang="EN-US">a&lt;/span>或者&lt;span lang="EN-US">b&lt;/span>或者&lt;span lang="EN-US">c&lt;/span>，&lt;span lang="EN-US">abc&lt;/span>这三个原子之间地位平等&lt;/span>&lt;/span>&lt;span>&lt;span lang="EN-US">&lt;/span>&lt;/span>&lt;/p>
&lt;p style="text-align: left" align="left">&lt;span>&lt;span lang="EN-US">[^]&lt;/span>&lt;/span>&lt;span>&lt;span>代表除了中括号里面的原子均能进行匹配：例如&lt;span lang="EN-US">[^xyz]py&lt;/span>能匹配&lt;span lang="EN-US">apy &lt;/span>但是却不能匹配&lt;span lang="EN-US">xpy&lt;/span>&lt;/span>&lt;/span>&lt;span>&lt;span lang="EN-US">&lt;/span>&lt;/span>&lt;/p>
&lt;p style="text-align: left" align="left">&lt;span>&lt;span lang="EN-US">2&lt;/span>&lt;/span>&lt;span>&lt;span>，元字符&lt;/span>&lt;/span>&lt;span>&lt;span lang="EN-US">&lt;/span>&lt;/span>&lt;/p>
&lt;p style="text-align: left" align="left">&lt;span>&lt;span>元字符就是正则表达式中具有特殊含义的字符，比如重复&lt;span lang="EN-US">N&lt;/span>次前面的字符等&lt;/span>&lt;/span>&lt;span>&lt;span lang="EN-US">&lt;/span>&lt;/span>&lt;/p></description></item></channel></rss>