zoukankan      html  css  js  c++  java
  • 正则表达式使用步骤

    """
    RE使用步骤:
    1、使用compil将表示正则的字符串编译为一个pattern对象
    2、通过pattern对象提供一系列方法对文本进行查找匹配结果,一个match对象
    3、最后使用match对象提供的属性和方法获得信息,根据需要进行操作
    """


    import re

    '''
    # 查找数字
    # r表示字符串不转义
    p = re.compile(r'd+')
    # 在字符串中进行查找,按照规则p制定的正则进行查找
    # 返回结果None表示没有找到,否则会返回match对象
    m = p.match("one12twothree33456four78")

    print(m)
    '''

    # 查找数字
    # r表示字符串不转义
    """

    p = re.compile(r'd+')
    # 在字符串中进行查找,按照规则p制定的正则进行查找
    # 返回结果None表示没有找到,否则会返回match对象
    # 参数3,6表示在字符串中查找范围
    m = p.match("one12twothree33456four78",3,6)

    print(m)
    """
    # 上述代码说明的问题
    # 1,match可以输入参数表示起始位置
    # 2。查找到的结果只包含一个,表示第一个进行匹配成功的内容

    # 分成两组,组之间用空格分割
    # I 表示忽略掉大小写
    """
    p = re.compile(r'([a-z]+) ([a-z]+)',re.I)
    m = p.match("I am really love wangxiaojing")
    print(m)
    print(m.start(0))
    print(m.end(0))
    print(m.group(0))
    """


    # 查找
    # - search(str,[,pos[,endpos]]):在字符串中查找匹配,pos和endpos表示起始位置
    # findall:查找所有
    # finditer:查找,返回一个iter结果

    """
    p = re.compile(r'd+')
    m = p.search("one12two34three567four")
    print(m.group())

    rst = p.findall("one12two34three567four")
    print(type(rst))
    print(rst)
    """

    # sub替换
    # sub(rep1,str[,count])
    """
    p = re.compile(r'(w+) (w+)')
    s = "hello 123 wang 456 xiaojing, i love you"
    rst = p.sub(r'Hello world',s)
    print(rst)
    """

    # 匹配中文
    # 大部分中文内容表示范围是[u4e00-u9fa5],不包括全角标点
    """
    title = u'世界 你好,hello moto'
    p = re.compile(r'[u4e00-u9fa5]+')
    rst = p.findall(title)
    print(rst)
    """

    # 贪婪和非贪婪
    # 贪婪:尽可能多的匹配,(*)表示贪婪匹配
    # 非贪婪:找到符合条件的最小内容即可,(?)表示非贪婪
    # 正则默认使用的是贪婪匹配
    title = u'<div>name</div><div>age</div>'

    p1 = re.compile(r"<div>.*</div>")
    p2 = re.compile(r"<div>.*?</div>")

    m1 = p1.search(title)
    print(m1)

    m2 = p2.search(title)
    print(m2)







  • 相关阅读:
    CentOS安装使用.netcore极简教程(免费提供学习服务器)
    新生命团队netcore服务器免费开放计划
    线程池ThreadPool及Task调度死锁分析
    NetCore版RPC框架NewLife.ApiServer
    NewLife.Net——管道处理器解决粘包
    NewLife.Net——网络压测单机2266万tps
    NewLife.Net——构建可靠的网络服务
    NewLife.Net——开始网络编程
    搬家
    借助Redis做秒杀和限流的思考
  • 原文地址:https://www.cnblogs.com/jerryspace/p/9829060.html
Copyright © 2011-2022 走看看