正则 024

一.正则表达式

  优点 灵活 功能性强 逻辑性强 

  缺点 太活 不易上手

  正则表达式是由普通字符和元字符组成的,普通字符包含大小写字母 数字 匹配普通字符直接写就行了

  元字符 是正则表达式的灵魂

  1.字符组[字母按ascii码顺序 数字还是0-9]

  2.简单元字符

    .   匹配除了换行符以外的任意字符

    w 匹配字母或数字或下划线

    s 匹配任意的空白符

    d 匹配数字

     匹配一个换行符

     匹配一个制表符

     匹配一个单词的结尾

    ^ 匹配字符串的开始

    & 匹配字符串的结尾

    W 匹配非字母或者数数字或者下划线

    D 匹配非数字

    S 匹配非空白图

    a|b 匹配字符a或者b 前者要比后者长不然匹配不出来长的.

    () 匹配括号内的表达式 也表示一个组?

    [...]  匹配字符串中的字符

    [^...] 匹配除了字符串中字符的所有字符

  3.量词   一次性匹配很多个字符 

    * 重复零次或者更多次

    + 重复一次或更多次

    ? 重复零次或一次

    {n} 重复n次

    {n,m} 重复n到m次

  4.惰性匹配和贪婪匹配

    在量词中的 * , + , {} 都属于贪婪匹配 就是尽可能多的匹配到结果 

    str : 麻花藤昨天让英雄联盟关服了

    reg : 麻花藤.*  此时匹配的是整句话   

    reg : 麻花藤.*?  此时匹配的是麻花藤

    .*?x   含义是找到下一个x为止

  5.分组

    正则中使用()进行分组 比如匹配一个相对复杂的身份证号 .身份证号分为两种 老式的有15位 新的有18位 并且新的身份证号皆为可能有x

    () 数字 获取第数字个分组内的正则,数的是小括号

  6.转义

    在正则:

      .

      元字符

      \n

    python

      r"\n"

      '\.'

      .

    

原文地址:https://www.cnblogs.com/f-g-f/p/9769445.html