正则表达式

正则是一门独立的语法,python没有关系

正则表达式就是设置好规则,来处理字符串,               语法包含元字符,量词,特殊方法和现象

1,元字符:

字符组:     []    [^]    |    ()

               在同一位置可能出现的各种字符组成的字符组,在正则表达式中用[]表示,注意只能判断一个位置的字符,    []中的内容,依据ASCII表中的顺讯,从小到大排列

               [0-9] 找到字符串中的数字                 [a-z]          找到字符串中的小写字母                [A-Z]    找到字符串中的大写字母           [0-9a-zA-Z]     表示16进制字符

              [^..]匹配除了字符组中字符的所有字符          [...]匹配字符组中的字符                 a|b    匹配a或b            ()匹配括号内的表达式,也表示一个组 

w  d  s( , )       W  D   S  :

               w    匹配字符中的数字,字母,下划线          W    匹配非数字,非字母,非下划线

               d    匹配数字                                            D    匹配非数字

               s  匹配空百符, 回车,空格,tab                   S   匹配非空格,非回车,非TAB

^  $:

                ^  匹配字符串的开始                                 $   匹配字符串的结尾

.  :

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

2,量词:

? + * 

               ?    重复0次或1次             +    重复1次或多次             *  重复0次或多次

{n}  {n,}  {n,m}

                {n}  重复n次                   {n,}  重复n次或多次            {n,m}   重复n到m次

常用的组合用法:

        (1)高.   ===>匹配所有 高X                 ^高   ===> 只从开头匹配  高X                高$   ===>  只从末尾匹配  高X

        (2) 高.?  ===>先取高,再取一个字符0次(不取)或取1次       高.+  ===>先取高,再取一个字符(至少一次)或取多次       高.*  ==>先取高,再取一个字符0次(不取)或多次

             高.{1,2}  ==>  取1到2次任意字符      高.*?       ===>      惰性匹配

        (3)字符集:       高[用永杰帅带了]*    匹配高后面[用永杰帅带了]任意次              高[永杰]*    匹配不是永杰的字符任意次          [d]  匹配任意一个数字    [d]+  匹配任意个数字

        (4)        在Python中                 ======>            一般都有转义的含义,所以一般在字符串的前面加r,就能转义成  '纯的'  字符串            如:r'\n'      r' ' 

                   在正则中的含义              ======>          '('  表示匹配小括号    '-'  表示减法           [()+*?/$.]   在字符组中一些特殊的字符会现出原形

         (5)   .*  ===>  默认是贪婪模式,会匹配尽量长的字符串                      高.{1,6}?帅            ===>从高到帅之间的字符,惰性匹配,回溯算法

                .*?     ===>   转换为非贪婪模式, 会匹配尽量短的字符串              .*?X     ===>取前面任意长度的字符,直到X出现,停止

         (6)   *?   重复任意次,但尽可能少重复

                  *?   重复任意次,但尽可能少重复

                  +?   重复1次或更多次,但尽可能少重复

                   ??   重复0次或1次,但尽可能少重复

                  {n,m}   重复n到m次,但尽可能少重复

                  {n,}   重复n次以上,但尽可能少重复 

 


                 

 

              

 

  

原文地址:https://www.cnblogs.com/laogao123/p/9431323.html