Python学习笔记——正则表达式入门

时间:2023-03-08 17:56:12

# 本文对正则知识不做详细解释,仅作入门级的正则知识目录。

  正则表达式的强大早有耳闻,大一时参加一次选拔考试,题目就是用做个HTML解析器,正则的优势表现得淋漓尽致。题外话不多讲,直接上干货:

1. 元字符:

   aaarticlea/png;base64,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" alt="" />

  与之对应的还有反义字符,大部分为小写字母变大写,例如\D表示匹配非数字的字符。

2. 重复(即匹配变长的字符串):

  元字符可匹配单一的字符类型,若想匹配长度未知或长度限定的字符串需要在后边加上限定符。

  aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAN8AAAC6CAIAAAChog+SAAAPZElEQVR4nO2dTXLkKBCFOZAi5jha9V207XvoAH2KOkGfg6UXDts1C7VlCjKTx0+VEilfTMRIKIEEPlIqJNrubjJplTvagVjOOede4dXzKkpLfmqj8MJf7Fi71Hn2soHkjlN7WUgThEaFRf358wevBSy/2jENOtgzZPj79uBeWnogGCOnpYn7pd+/f28HO51yXrzTUm9DcZOB7rgjpMiVTUgH/fr1a+/K//77Dy+2bkTBU7KWnTyhit+/f++JXJmlXRSZkeULlSqROp+yPbWh+efPn/34169f7cWSZnV0hqcheYhNynG20mxD0hLSIK0T0OMd4saDHJv7Yz/+/fvXAeEzO/ZbIVxddb7dYTrDlGyZjSJL61tFR6nzKdtTm8F2xwTpzBbOFYKAlbXP2oQTA6SzdNogpZH2x0qdT0U9tUWm7S6PF07qeXRG6SSd98cbLoia4IlsVoH1ITrSFbmPsr22BU7koVOovchGPuVaFBmnhUR07qdp3va2kGbaoNylyCfHLKmQKr2n36vuhqVZUvLa6USQQvCN+rYo+1HS4lOIWrbjKtBMi5JP67JUl7mhE9J5v0vR7k71UqTUEkzXIxU+bb0T0pbO9ch+N94ePfFawNO6LHVlRr+KyFkqNwfEy+gs9yCJGXs62WXbWIane8btEhdThbHhZsLL6BROOW7a6URqOVYqfhXdHx+/ok4PO267p0fafxjV0Zle4hJBOiNl3UjpRHwLZ5TR+VyloxJeekb3ZcsU6HTYO/EIMi5LGiw56MliZWVbhP8Sfb20+PQkBLM11l1FDMAsJJ196806oBPNux46TaZURqdJr4xOk165+/2+mExqRNDpr6SrtXcgGZ1Gp15BdG6rDPvxNE1Ron4J3o5FZ9qQsQaiSPV0eqxfyDVh0LmoXkFcLjlxk346I+flU7mQuoE4Sj3pRNqf7ZRpmvbyOftsISCym/TT6amJmh5HxtEo1DF9rPJ0pq0K6SEltFzulHVdnXPrusr2F6dTTvQMvheik5ydQhZ5ru+KAmektFK5xzn7yGwIOndlm+OvQycyupHAzkqVBs5s+XJdSLofk048JaITHEQlQumMUoQS0/aDdJJPnC55kLgUnWFPckslXIowCmQuhZLodM5t8QwkwD/SHB2QXbaLC5zRqAiSPRyUzl0VdEbHp6KTaxWZEl3iMgolcE+cDvgRJriBAD0infjkPCedu3A63WOsxekUnjgr6CSzCM6MRed+St7W9qscnQLTClVDJ5cYXcLpFH6qu2R5VejiPUV4VE11VjqjLiL76gWet6gDnVyzOZiibpV/qqd0Ir5l1/OjLhCuKpH7XshD7k7k6FyITp9rdjhrhbweWONMR0X2TQCatB+FzrTDSQqF7HKKQtXT6Zn7S3Zmh5eya5zkqMi+OfE7lTRxIDo9T6TRSSikJ2uf0iwHTk8NQKo0C/k2i8s1BJ2bOMi4riBzpaOgVq10IgbVxtm8yMzJpo9CZ13XcRNYP5revj7249B5QRmdRqdeGZ1Gp14ZnUanXtF0mkxKZLHzWu0dSEan0alXRmcxncKid1Eh4MuCUjeQLH0XO+tKQ3IZnSidWXpahjz7vqNLddEbo/0AV4XzLf4bnTSddcEMHNoKGlIHEJeqsxRZIn1V57/RCcXOuvCAG2dHlMxCMoGjL/gMNgdnDvc/FE7n++y+lhvi82BaqO8KikbXid+zRv3uEozSEnyODxwL0AZsaWpf6kOR/0V0fmY2846pxtgZMVqUt8hGqKs0e/YSXn62+YgxlzdL5/vs7m5+9/5tmT9u3q/z3Z0LU45OPJA02nsqdnJZPAYE6UBoX4SjTF7UCtkS9H8TFjvXTzd/LMvn7O7zmcD03ot0Zo85eyQ9MqgwA2MhSKcsrhYctSL/N8F0uq9puruL0VkXC0F7/zi66WlqnE0hL3WPnWm7kCYX+b/J7uzdYidyNTTjog438GRFwlQRjrOgyKdy3rTGCv832a+ibrFTyJLapBnJomQDMp30JJtLaKzQZLAtFf5vgum8fUzXWFEiJXfibgMOVWiPc8CdIr6ReVvKDF1FMtbVZavx6LsigaHSoRLUnc7IYc7VMKXabXkqcqdGp6ResTM0FqIgaZytRR5OcraQsyg8IKvDPS/KVeT/LqOzw7uiKKOQwgkf3YrgyhkIKaDnRQ3kHBPSjc7W7zuREcIHu8VAGHguTGZ9I2cjDiXoIXfV6LSvj/XK6Gy6s5u6Kxoao/Na7R1IRqfRqVc0nSaTElnsvFZ7B5LRaXTqldF5zI7hdlVU53JL4i/zBMxldKrYMZytukt1YRaXLK2XLvfgnlT7b3QesGO4Qmn2Rjo7WiItrfPf6Dxgx3CFyNElmUBCYHbCgM3BmcP9D1VA57p8nPHzzlfvGO4iHAvQppRjMh1vKei/0alixzAori6wCqQVpeVnm48Yc3mNziN3vZXKPX6XicfC1L4IR7kJexXZluL+bzI6X71jWIBYxjolQKYzPZbpxD2JcmWdqfB/U5bOt2W6Oxf9d6rtb6PEzrScvnQWnUbtQppc5P8mi53H7BjGxY13Goo4N9LjLCjyqZw3rbHC/01G56t3DNepgk7SAYFOWUItWVcr/N9kdB62Y7hIQjArrWK3bykzbCySsa4uo1PXjmFO1SRFDnOuhikVbmczPp3Os6pX7AyNhbthneThJGcLOYvCA+4WXEdndpJw3nKeeKPT69gxnJUQ8Mh0kGAuBfQcb2Cp/5uMTkU7hpG6Kq5yVe8RVPCNnI3VzSn13+i0r4/1yui0HcO6FA2N0Xmt9g4ko9Po1CuaTpNJiSx2Xqu9A8noNDr1yui0vzHcR88o0+hUsWNYzturujBLd2+NzqeIbG9dMAPDYdaSzJJWV9rSjgB18ScrjM71c/8wflreujtxrJDZmO36orEBhzZLJ4kyjn4LT7g/LQLoXD/d/P598n6+P0a4NH8F4h5fWMvj5BKM0hJ8+b0eoaELMWDJL6JznR/+TNFt+QpgPYMaY2fEaFHeIhuhrtLsvdToT1YInXc3/Xx3fB06wVjYbu+xz4VCs/AUcSa17wIQ7k+dCn8VnfEvvgl0Zo85eyQ9MqgwQyK6Z+gJE3FV+1OnEjrXzzCInkZHxc49C3eaGmdTyEtPip1F/tQJp/NtWU51Q9/VK3YiV0MzEhrPIMuhIEwV4bgFozp/6oTT+T6f63FzV6/YKWRJbdKMZFGyAZlOegLmwqWNztOqy3qnh7GL7EH0U8SLfCPzNkbQXv4IgulcP93pfg9tAt8VgeGwcZy60xk5zLna6KfR+Sz1ip2hsRAFSeNsLchdPnWAY6j9LlzkT7Xszq5ix3DWLEuwEMw4gy50gv7UyehUtGO40UAAhbzUDlCdP7iMTvv6WK+MTtsx/Fw1Do3Rea32DiSj0+jUK5pOk0mJLHZeq70Dyeg0OvXK6NT+N4afVOwQKqTz9jFl9xWN9s4TpDO7UNKO0ZOKHVdldEZ7jHiN9Lkd2d6KdbsuK3+pmdEJ0vm2zOC38bjl8UJiZxaRXgyRdHZc3x5LRqfqvzF88VBqdKrYMQyWeSk0vdHpVf6dzD0Yh6cXVAmdt4/p8R8FcdPHbf9HbB5/Bq3zMH/pVaAze8zZ8+nr7Jyblts6/yM3WQGJ0BRKPr1gOm8fU/SnhW8f0w+U73O0ijTOutKrY+dtmX6gXGc3Rb108WfNUEV39vc53M9++5h+Tt+WKWTxbZkuFzuRq957f1umHyB/Tjj001B6HTU8d8p0Xu+5U8jyYMTQuZeQlkmmX0FG58t3DJfQefGnT6Pz5TuGjU5YpW8y96fJ9zn4qb7O2789G1wd/E1mpCIyxAeA79/q8xqfJBVBkfjUKvwKZP100FcgI/0LtO3viqKMQkpWZAwmDa4g+4JO0Y7h0L766plkdNrXx3pldI66Y/io7nqljE6LnXpldBqdekXTaTIpkcXOa7V3IBmdRqdeGZ0n3DHsckv6L/Ok0YdCOpEdw5y0fvEJ0pld0GlHoVexjnod2r5clfWke7eU0QnvGOak8f072d6K9cUuK5SpWSOdHS2RFnXxf1cRne1fHmn8dgmJnXVho0Lk6JJMICEwOzG6zxncf0RG5wl3DMs4FnFMpuMtqvN/l9F5wh3DiLel5WebiRiXdoXROfaOYbKi0L4IR9nVvYpsi3D/ZZXQWbJjmJPCncQCndljzp5P77xjmDST6ZTF1YKjVuS/LJjO0h3DnPStK706dnbdMVxBZ9Fp5D/SFUX+yyq6s+M7hjlp3EncK3YiV73vvGNYdjILinwq501rrPBfVsNzZx2d533uFLI8GHXdMcxVJNApS6iFdCybaHQ2qct6p8eH8FV7Mnf7ljLDRiEZO/rvn0KntOttGDqLYkzZED6HzsgxzqUwpQKXbMYD6QR3DL8t031a3qgChnmTGamoZ8W7ZM8dw8JsCQ+4W3AdndlJwnnLeSKo8CsQbDfwbfkibLTuJG5/VxRlFFKyEgIemQ4SzKWAHuINKfVfVv8v6G7LFxM4laqxvcjIlWKKx6e0Fs5e9oGcdRWzS/YQuRrKvu+0r4/1yugcdcfw6AKHxui8VnsHktFpdOoVTafJpEQWO6/V3oFkdBqdemV0at8x3KuW17jXV4V0tuwY5nT0F58gndkFkcbhBxdfkFqe4d4hKqOzeccwpyPfv5PtrVif67LCtxdVcUk2Oz2dz/vC6Mhvl5DYmR3ajmMvR74WOqtny1EyOnXtGA6NyeM6qgYNpUanoh3DAkN1dHK5hkDTG51ezY5hOXsLnY1x90CV0NmyY3j7Yb58bpb/vlYOshy4k1igM3vM2fPp+R3DZHUxYevs3LQs81bCv8Iei4oyCh6qFUxn847hdd6M35bpPq/Rxo8j15VeHTtzO4Y9dotf562Q2zJ9//+xJKGQUVR0Z2/aMfy9GrVvGg5LO3Inca/YiVz1PrOviCuEonPLeFumjfR/CdwUSkOpfjU8d/alc/znTiHLgxFPp5AXpzMy848pRiet4egMhQyqELEe9OTYSZaAx35VegKdzO62segUAmdKIRnkPMdBFZ3pJaMzVv2O4e2n/fSxLl/hz/ZvM3VvMiMVjaj4AJDZMRyVQM6En2KmZV2mrYDvhFvqMBTRVarwK5CWHcNtZT5P7e+KooxCiiCh5N3Aw2CRsZw00Kz+X9DZjuE6G/+Et/lZr4pKe73s+077+livjM6r7xg+qtsRGZ0WO/XK6DQ69Yqm02RSophOk0mnjE6TXhmdJr0yOk169T8XQ2gd/49FrAAAAABJRU5ErkJggg==" alt="" />

3. 范围与分组:

  有时元字符并不能满足匹配字符的需求,这时就需要[]来圈定匹配范围,例如要匹配一个只带有a,s,d,f的单词,可以用\b[asdf]\b;正则里面还有小括号用来表示分组,比如你想重复某几个字符,就可以使用分组,例如(\d.\d){1,3}表示匹配小括号里的重复内容一到三次。此外,小括号还可以用来后向引用等,此处不记。

4. 零宽断言:

  零宽断言主要用来查找在某些断言(指定内容)之前或之后的内容,例如(?=exp)匹配表达式exp前面出现的内容(不匹配exp),(?<=exp)匹配表达式exp后面出现的内容,还有负向零宽断言等此处不记。

5. 贪婪与懒惰:

  当正则表达式中包含能接受重复的限定符时,通常的行为是(在使整个表达式能得到匹配的前提下)匹配尽可能多的字符,即贪婪匹配。如表达式a.*b,搜索aabab的话,它会匹配整个字符串aabab。而懒惰匹配会匹配尽可能少的字符串,只需要在限定符后面加一个?,例如a.*?b会匹配aab(第一到第三个字符)和ab(第四到第五个字符)。

6. Python的re模块:

  python 提供re模块,提供正则的所有功能。下面只记两个方法和一个注意的地方。

  6.1 match方法:

    match()方法判断是否匹配,如果匹配成功,返回一个Match对象,否则返回None

 >>> import re
>>> re.match(r'^\d{3}\-\d{3,8}$', '010-12345')
<_sre.SRE_Match object at 0x1026e18b8>
>>> re.match(r'^\d{3}\-\d{3,8}$', '010 12345')
>>>

    如果正则表达式中定义了组,就可以在Match对象上用group()方法提取出子串来。注意到group(0)永远是原始字符串,group(1)group(2)……表示第1、2、……个子串。使用groups()方法还可以得到所有子串。

  6.2 split方法:

    split()方法可切分子串,如下:

 >>> re.split(r'[\s\,\;]+', 'a,b;; c  d')
['a', 'b', 'c', 'd']

  6.3 关于转义字符:

    python转义字符串也用\表示,所以正则表达式读取时作为字符串出现时会被编译器自动去掉转移字符的\,正则使用时就会出错,所以推荐使用python的 r 前缀。

ps:

  本文是对正则表达式的学习总结,大部分知识来源于网上。下面给出两个个人认为比较好的链接:

  1.http://www.jb51.net/tools/zhengze.html 对正则表达式介绍的比较详细,个人认为要想深入学习正则表达式还是买本书比较好。

  2.http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/001386832260566c26442c671fa489ebc6fe85badda25cd000 来自廖雪峰大神的教程,结合python一起讲,只是稍微短了一点。