第八章 python正则表达式

>>>
    了解正则表达式的基本语法
    掌握在Python中使用正则表达式的语法格式
    掌握如何使用re模块匹配字符串
    掌握如何使用re模块规制字符串的方法
    掌握如何使用正则表达式分割字符串

8.1  正则表达式语法
    8.1.1 行定位符
        ^tm     # 匹配行头是tm
        tm$    # 匹配尾是tm
        tm    # 任意位置

    8.1.2 元字符
        “.”    # 匹配除换行符以外的任意字符
        “\w”    # 匹配字母或下划线或汉字
        “\s”    # 匹配任意的空白符
        “\d”    # 匹配数字  
        “\b”    # 匹配单词的开始或结束
        “^”    # 匹配字符串的开始
        “$”    # 匹配字符串的结束

    8.1.3 重复
        “?”        # 匹配前面字符零次或一次
        “+”        # 匹配前面字符一次或多次
        “*”        # 匹配前面字符零次或多次
        “{n}”        # 匹配前面字符n次
        “{n,}”    # 匹配前面字符最少n次
        “{n,m}”    # 匹配前面的字符最少n次,最多m次

    8.1.4 字符类
        [任意字符]
        [\u4e00-\u9fa5]    # 匹配一个汉字

    8.1.5 排除字符
        [^a-zA-Z]    # 不是字母的字符串
    
    8.1.6 选择字符
        身份证的匹配:
        (^\d{15}$) | (^\d{18}&) | (^\d{15}(\d|X|x)$))
    
    8.1.7 转义字符
        ip的匹配
        [1-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}
    
    8.1.8 分组
        (thir|four)th    # 匹配thirth或fourtg
        [1-9]{1-3}(\.[0-9]{1-3}){3}    # 字符串的匹配

    8.1.9 在PTHON使用正则表达式语法
        '\b\w*\b'        # 错误的(需要转义)
        '\\b\\w*\\b'        # 对的
        r'\b\w*\b'        # 加R,或r,是对的
8.2  使用re模块实现正则表达式操作
    
        

    8.2.1 匹配字符串
        a, 使用match()方法进行匹配(匹配的是字符串开始位置)

            re.match(pattern, string, [flags])
            # pattern,模式字符串
            # string, 要匹配的字符串
            # 表示标志位:    具体,看其他资料
                
            import re
            pattern = r'mr-\w+'            
            match = re.match(patten, string, re.IGNORECASE)    # 返回的是match对象(注意是大写的i)
        
        b, 使用search()方法进行匹配(匹配是字符串结束位置)
        
            re.search(pattern, string, [flags]) # 返回的是match对象,
            方法同上

    

    8.2.2 替换字符串
        re.sub(pattern, repl, string, count, flags)
        # 表示模式字符串,
        # 表示替换的字符串
        # 表示要补查找替换的原始字符串
        # 可选:表示替换的最大次数,默认值为0,
        # 可选:表示标志位,用于控制匹配方式,
        
        import re
        pattern = r'1[3435]\d{9}'
        string = '中奖号码为 13242, 联系电话为: 13611112222'
        result = re.sub(pattern,'1XXXXXXXXXX', string)
        print(result)
        
        
    8.2.3 使用正则表达式分割字符串
        re.split(pattern, string, [maxsplit], [flags])
        同上
        import re
        pattern = r'([?|@])'
        str1 = 'zyh?zml?lj?hpc@lzl'
        re.split(pattern, str1)
        
        # 注意,上面的"[]"表示匹配"[]"中的一个字符
        # 注意, \s表示匹配空字符
    
        
        

        
        
                
        

发布了76 篇原创文章 · 获赞 0 · 访问量 7168

猜你喜欢

转载自blog.csdn.net/julicliy/article/details/104092179
今日推荐