zoukankan      html  css  js  c++  java
  • python之re模块

      字符

    .    匹配除
    外的任意字符
        转义字符,使后一个字符改变原来的意思
    []    字符集(字符类),对应字符集中的任意字符
    
    # _*_ coding:utf-8 _*_
    import re
    
    my_str = '''konmgzhagen.com.cn
                kongyicheng.com.cn'''
    
    # 点不能匹配换行
    (这一条匹配不到)
    dot = re.search('cn.*kong',my_str).group()
    
    # 可将点转成真正的字符
    Escape = re.search('kong.*.cn',my_str).group()
    print Escape
    
    # 以o开头,后面是n或m的字符串
    chartSet = re.search('o[nm]',my_str).group()
    print chartSet
    
    结果:
    AttributeError: 'NoneType' object has no attribute 'group'
    kongyicheng.com.cn
    on
    

      预定义字符集

    d    数字[0-9]
    D    非数字
    
    s     空格       
    S    非空格
    
    w    单词字符
    W    非单词字符
    

      数量词

    *          匹配前一个字符0或无限次
    +          匹配前一个字符1或无限次
    ?         匹配前一个字符0或1次
    {m}        匹配前一个字符m次
    {m,n}      匹配前一个字符m到n次
    

      边界匹配

    ^     匹配字符串开头
    $     匹配字符串结尾
    A    仅匹配字符串开头
        仅匹配字符串结尾
    

      常用的re模块方法

    re.match()    从字符串的开头匹配,匹配一次
    re.search()    从字符串的任意位置开始匹配,匹配一次
    re.findall()     从字符串的任意位置开始匹配,返回一个列表
    re.finditer()   从字符串的任意位置开始匹配,返回一个迭代器,适合大数量的匹配

    # _*_ coding:utf-8 _*_
    import re

    my_str = 'I am python modules test for re modules am'
    print re.match('I am',my_str).group()
    print re.search('am',my_str).group()
    print re.findall("modules",my_str)
    for e in re.finditer("modules",my_str):
    print e.group()

    结果

    I am
    am
    ['modules', 'modules']
    modules
    modules

      

  • 相关阅读:
    第三方库镜像网站
    一步步搭建tensorflow环境(最简单最详细)
    公众号图片素材下载网站
    微信小程序navigateTo详细介绍
    微信小程序ES7的使用
    Mybatis连接Oracle的配置
    微信小程序创建自定义select组件(内含组件与父页面的交互流程)
    C#WebApi如何返回json
    将json格式字符串通过JsonConvert.DeserializeObject<T>得到实体属性都为空的解决
    自由学习正则表达式
  • 原文地址:https://www.cnblogs.com/kongzhagen/p/6291992.html
Copyright © 2011-2022 走看看