zoukankan      html  css  js  c++  java
  • 正则表达式

    正则是一门独立的语法,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次以上,但尽可能少重复 

     

    
    

                     

     

                  

     

      

  • 相关阅读:
    上篇用到的matcher函数
    lambdaj学习
    Redis高级应用——2
    Redis入门
    从gitee 下载代码到本地
    CSS中对图片(background)的一些设置心得总结
    nodejs 安装Ionic 和cordova
    Spring MVC内容协商机制详解
    基于Servlet3.0的编程式SpringMVC实例详解
    基于Junit的Spring集成测试方法
  • 原文地址:https://www.cnblogs.com/laogao123/p/9431323.html
Copyright © 2011-2022 走看看