• python024


    正则表达式
    正则表达式是对字符串操作的一种逻辑公式.我们一般使用正则表达式对字符串进行匹配和过滤.使用正则的优缺点:
    优点:灵活,功能性强,逻辑性强
    缺点:上手难,一旦上手,会爱上这个东西.
    正则表达式由普通字符和元字符组成.元字符:元字符才是正则表达式的灵魂.元字符中的内容太多了,在这里我们介绍一些常用的.
    1.字符组
    字符组就是简单的用[]括起来.在[]中出现的内容会被匹配.例如[a:b:c]匹配a或b或c
    如果字符组中的内容过多还可以使用-,例如:[a-z]匹配a到z之间的所有字母[0-9]匹配到所有的阿拉伯数字
    2.简单元字符
    基本的字符.常用的就那么几个
    . 匹配出换行符以外的任意字符
    w 匹配字母或数字或下划线
    s 匹配任意的空白符
    d 匹配数字
    匹配一个换行符
    匹配一个制表符
     匹配一个单词的结尾
    ^ 匹配字符串的开始
    $ 匹配字符串的结束
    W 匹配到非字母或数字或下划线
    D 匹配到非数字
    S 匹配非空白符
    a|b 匹配字符a或字符b
    () 匹配括号内的表达式,也表示一个组
    [...] 匹配字符组中的字符
    [^...] 匹配除了字符组中字符的所有字符
    3.量词
    我们目前匹配到的所有内容都是单一文字符号.那么如何一次性匹配到很多个字符呢,我们用到量词
    * 重复零次或更多次
    + 重复一次或更多次
    ? 重复一次或一次
    {n} 重复n次
    {n,} 重复n次或更多次
    {n,m} 重复n到m次
    4.惰性匹配和贪婪匹配
    在量词中的*,+,{}都属于贪婪匹配.就是尽可能多的匹配到结果
    str: 麻花藤昨天让英雄联盟关服了
    reg: 麻花藤.*
    此时匹配到的是整句话
    在使用.*后面如果加了?则是尽可能的少匹配.表示的是惰性匹配
    str:   麻花藤昨天让英雄联盟关服了
    reg:     麻花藤.*?
    此时匹配的是麻花藤
    str:<div>胡辣汤</div>
    reg:<.*>
    结果: <div>胡辣汤</div>
    str:<div>胡辣汤</div>
    reg:<.*?>
    结果:<div>
         </div>
    str:<div>胡辣汤</div>
    reg:<(div|/div*)?>
    结果:  <div>
           </div>
    .*?x的特殊含义 找到下一个为止
    str:abcdefgxhijklmn
    reg:.*?x
    结果:abcdefgx
    5.分组
    在正则中使用()进行分组.比如.我们要匹配一个相对复杂的身份证号.身份证号分成两种.老的身份证号有15位.新的身份证号有18位.并且新的身份证号结尾有可能是x.
    ^[1-9]d{14}(d(2)[0-9x])?$
    ^([1-9]d{16}[0-9x]|[1-9]d{14})$
    6.转义
    在正则表达式中,有很多有特殊意义的是元字符, 比如 和s等,如果要在正则中匹 配正常的" "而不是"换行符"就需要对""进行转义, 变成'\'.
    在python中,无论是正则表达式,还是待匹配的内容,都是以字符串的形式出现的,在字符串中也有特殊的含义,本身还需要转义. 所以如果匹配⼀一次" ", 字符串串中要写成'\n', 那么正则里就要写成"\\n",这样就太麻烦了.这个时候我们就⽤用到了r' '这个概念, 此时的正则是r'\n'就可以了.




  • 相关阅读:
    mysql官网下载链接——绿色版&安装版
    eclipse中去掉警告提示
    java用servlet、cookie实现一个阅读记录
    eclipse中的错误解决——Servlet cannot be resolved to a type
    eclipse——jsp字体设置
    eclipse——添加Tomcat7.0服务器
    eclipse中的错误解决——The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path
    eclipse——JavaEE插件
    OpenMP用法大全
    __new__ __init__区别
  • 原文地址:https://www.cnblogs.com/Li-Kai-168/p/9768522.html
Copyright © 2020-2023  润新知