Python re模块前的正则表达式常用语法小总结

时间:2022-02-07 22:36:50

一、正则表达式:

(1).正则表达式是干什么的

 正则表达式(regular expression)描述了一种字符串匹配的模式(pattern),可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等。

(2). 正则表达式的的语法

  1.字符

    1. \d    相当于[0-9]  匹配所有数字

      正则表达式:\d

      要匹配的字符:132sjdk464sajdksj21

    2. \w   相当于[A-Za-z_]  匹配所有字符

      正则表达式:\w

      要匹配的字符:132%sjd     k4 64sajdksj21_   @

    3. \s  匹配空格、换行符(\n)、制表符(\t)

    4. \b  边界符 

      正则表达式: ing\b

      要匹配的字符: thing taking tingouing  (匹配有边界的,没有边界的是不会匹配)

    5. \B 非边界

    6. \D 是\d 取反  匹配除数字以外的所有字符

      正则表达式:\D

      要匹配的字符:1545@%6siudaijs sa@

    7. \W 是\w 取反

      正则表达式:\W

      要匹配的字符:1545@%6siudaijs sa@

    8. \S 是\s 取反

      正则表达式:\S

      要匹配的字符:1545@%6siudaijs   sa@    Python re模块前的正则表达式常用语法小总结

  2. 量词

    *  取*前面一个字符的零次或多次   

    + 取+前面一个字符的一次或多次

              ?取?前面一个字符的零次或一次  (可以取消正则表达式的贪婪)

    .  取所有的字符包括空格、制表、换行   

    ^ 表示从头开始取

      正则表达式:^\d*

      要匹配的字符:123465sdjhaijeo 454sds21d2s1d5s4

    $ 表示一个字符的结尾

 

      正则表达式:\d*$

 

      要匹配的字符:123465sdjhaijeo 454sds21d2s1d5s445

    | 表示 或可以取两边谁满足的字符串 (如果 | 两边的表达式,后面的包含前面的内容但是还加了其他内容时,要放在前面,不然就匹配不到后面的表达式)

      正则表达式:\d+\.\d+|\d*  (匹配小数或者整数)    如果   |   两边的表达式调换则不能匹配到小数    \d*|\d+\.\d+

      要匹配的字符:123465sdjha2.3ijeo 454sds21d2s1d5s445     /   123465sdjha2.3ijeo 454sds21d2s1d5s445

    {n}  匹配前面字符n次

      正则表达式:\d{3}

      要匹配的字符:123465sdjha2.3ijeo 454sds21d2s1d5s445   

    {n,} 匹配前面字符至少n次

      正则表达式:\d{3,}

      要匹配的字符:123465sdjha2.3ijeo 454sds21d2s1d5s445   

    {n, m} 匹配前面字符n次到m次 (n次到m次之间的都可以)

        正则表达式:\d{2,4}

      要匹配的字符:123465sdjha2.3ijeo 454sds21d2s1d5s445   

    ()可以把多个字符分在一组

       正则表达式:\w+@[0-9A-Za-z]+\.([0-9A-Za-z]*\.)*com    里面还有很多东西没有处理(这里只是想说一下()的作用)

      要匹配的字符:1235456@qq.com    |   1235456@qq.12356.com                  都可以匹配

     []  表示一个字符组

其中 基本量词里面的都有特殊的含义,想要表达他们就要用到转义符 \  把他们转回原来的比如 \$ 就是匹配 $

一般 * . + ? 都具有贪婪性可以加?取消他们的贪婪性

令附:正则表达式查询的网址:http://tool.chinaz.com/regex