网络编程 
首页 > 网络编程 > 浏览文章

深入浅析正则表达式re模块(部分)

(编辑:jimmy 日期: 2024/11/16 浏览:3 次 )

正则表达式:

官方定义:正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。

"color: #ff0000">"color: #ff0000">字符组 : [字符组]

在同一个位置可能出现的各种字符组成了一个字符组,在正则表达式中用[]表示。一个中括号只表示一个字符位置
 字符分为很多类,比如数字、字母、标点等等。假如你现在要求一个位置"只能出现一个数字",那么这个位置上的字符只能是0、1、2...9这10个数之一。
     字符组 描述的是一个位置上能出现的所有可能性
    # 接受范围,可以描述多个范围,连着写就可以了
    # [abc]    一个中括号只表示一个字符位置,匹配a或者b或者c
    # [0-9]     匹配数字0-9,根据ASCII进行范围的比对
    # [a-z]     匹配所有的小写字母
    # [A-Z]     匹配所有的大写字母
    # [a-zA-Z]  匹配所有的大小写字母
    # [0-9a-z]
    # [0-9a-zA-Z_]

元字符:

        字符:

        元字符           匹配内容的规则
        .               匹配除换行符以外的任意字符
        \w              匹配字母或数字或下划线
        \s              匹配任意的空白符
        \d              匹配数字
        \n              匹配一个换行符
        \t              匹配一个制表符
        \b              匹配一个单词的结尾
        ^               匹配一个字符串的开始
        $               匹配一个字符串的结尾
        \W              匹配非字母或数字或下划线
        \D              匹配非数字
        \S              匹配非空白符
        a|b             匹配字符a或字符b
        a表达式|b表达式   匹配a或者b表达式中的内容,如果匹配a成功了,不会继续和b匹配, 所以,如果两个规则有重叠部分,总是把长的放在前面
        ()              分组,匹配括号内的表达式,也表示一个组。约束某一个元字符的作用范围,只在()内生效
        []              字符组,匹配字符组中的字符
        [^]             非字符组,匹配除了字符组中字符的所有字符
        在正则表达式中能够帮助我们表示匹配的内容的符号都是正则中的 元字符
        # [0-9]        -->  \d   表示匹配一位任意数字 digit
        # [0-9a-zA-Z_] -->  \w   表示匹配数字字母下划线 word
        # 空格 -->
        # tab  -->  \t
        # enter回车  -->  \n
        # 空格,tab和回车 --> \s  表示所有空白 包括空格 tab和回车
        # [\d]  \d  表示匹配数字
        # [\d\D] [\w\W] [\s\S]  表示匹配所有
        # [^\d]  匹配所有的非数字
        # [^1]  匹配除数字1以外的所有  
        # [1-9]\d 匹配两位整数
        # [1357]\d  匹配1,3,5,7,开头的两位整数
              例1:匹配多个网址:
             www\.oldboy\.com|www\.baidu\.com|www\.jd\.com|www\.taobao\.com     #\.表示取消.的特殊意义
             www\.(oldboy|baidu|jd|taobao)\.com    #用() 来约束 | 描述的内容的范围      
        记忆元字符 : 都是表示能匹配哪些内容,一个元字符总是表示一个字符位置上的内容
        # \d \w \s \t \n \D \W \S
        # [] [^] .
        # ^ $
        # | ()

量词:

        量词  用法说明
        *      重复0次或更多次,表示0次或多次    {0,}
        +      重复1次或更多次,表示1次或多次    {1,}
        "color: #ff0000">转义符:

 原本有特殊意义的字符,到了表达它本身的意义的时候,需要转义。     

     . 有特殊的意义,取消特殊的意义\.

  有一些有特殊意义的内容,放在字符组中,会取消它的特殊意义
                #只表示符号本身
          [().*+"color: #ff0000">贪婪匹配:

 1.贪婪匹配:在量词范围允许的情况下,尽量多的匹配内容   
  .*x 表示匹配任意字符 任意多次数 遇到最后一个x才停下来  
  回溯算法: 
 2.非贪婪(惰性)匹配: 总是在量词范围内尽量少的匹配内容。前面的*,+等都是贪婪匹配,也就是尽可能匹配,后面加"title">(.*"title">.*"title">.*"color: #ff0000">总结

以上所述是小编给大家介绍的深入浅析正则表达式re模块(部分),希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

上一篇:2019手机号码JS正则表达式验证实例代码
下一篇:Python中正则表达式的巧妙使用一文包你必掌握正则
几个月来,英特尔、微软、AMD和其它厂商都在共同推动“AI PC”的想法,朝着更多的AI功能迈进。在近日,英特尔在台北举行的开发者活动中,也宣布了关于AI PC加速计划、新的PC开发者计划和独立硬件供应商计划。
在此次发布会上,英特尔还发布了全新的全新的酷睿Ultra Meteor Lake NUC开发套件,以及联合微软等合作伙伴联合定义“AI PC”的定义标准。