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)







  • 相关阅读:
    有关macOS隐藏文件的问题
    AcWing 2548. 大胖子走迷宫(BFS)
    AcWing 1224. 交换瓶子(交换最少次数使得数列有序)
    AcWing 1220. 生命之树(树形DP)
    AcWing 1215. 小朋友排队(树状数组)
    AcWing 1214. 波动数列(推柿子+DP)
    Python文件操作
    远程升级程序过程
    找某个Linux内核可能调用的文件
    linux platform简易的理解
  • 原文地址:https://www.cnblogs.com/jerryspace/p/9829060.html
Copyright © 2011-2022 走看看