• day 17 re模块 正则表达式


    import re    引用re模块

    查找  

      finall:匹配所有,每一项都是列表中的一个元素

      search:只匹配从左到右的第一个,得到的不是直接的结果而是一个变量,通过group方法获取结果,没有匹配到会返回None,使用group会报错

      match:从头开始匹配,相当于search中的正则表达式加上一个^

    字符串处理的扩展: 替换 切割

      split  切割

      sub  替换  格式re.sub(旧的,新的,字符串,替换次数)

      subn  返回一个元组,第二个元素是替换的次数

    re模块的进阶:时间/空间

      compile  节约你使用正则表达式解决问题的时间  

     ret = re.compile('d+')   # 已经完成编译了
     print(ret)
     res = ret.findall('alex83taibai40egon25')
     print(res)
    

       finditer  节省你使用正则表达式解决问题的空间/内存

    ret = re.finditer('d+','alex83taibai40egon25')
    for i in ret:
        print(i.group())
    

    rearch()  .group()   括号中数字代表的是去对应分组中的内容

    1 import re
    2 s = '<a>wahaha</a>'  # 标签语言 html 网页
    3 ret = re.search('<(w+)>(w+)</(w+)>',s)
    4 print(ret.group())  # 所有的结果
    5 print(ret.group(1)) # 数字参数代表的是取对应分组中的内容
    View Code

    findall()  中有一个特殊的语法,优先显示正则表达式中()括号的内容

    取消分组优先(?:正则表达式)

        ret = re.findall('d+(?:.d+)?','1.234*4')

         print(ret)

    关于分组:

      1、对正则表达式来说,有时候我们需要进行分组,来约束某一字符出现的次数(.[w]+)? 

      2、对python语言来说,分组可以帮助你更好更精准的找到你真正需要的内容,例<(w+)>(d+)<

    split

    1 ret = re.split('d+','alex83taibai40egon25')
    2 print(ret)
    3 ret = re.split('(d+)','alex83taibai40egon25aa')
    4 print(ret)
    View Code

    python 与正则表达式 之间的特殊约定

      1、分组命名(?P<这个组的名字>正则表达式)

      2、使用前面的分组,要求使用这个名字的分组和前面同名分组中的内容匹配的必须一致

    pattern = '<(?P<tab>w+)>(w+)</(?P=tab)>'
    ret = re.search(pattern,s)
    print(ret
    
  • 相关阅读:
    Javascript创建对象的学习和使用
    Javascript正则表达式的初步学习
    jQuery/javascript实现全选全不选
    jQuery/javascript实现网页注册的表单验证
    jQuery的简单入门练习
    jQuery实现左移右移
    jQuery/javascript实现简单网页计算器
    MySql的基本操作以及以后开发经常使用的常用指令
    Javascript实现计数器,定时警告和停止
    jQuery实现Checkbox中项目开发全选全不选的使用
  • 原文地址:https://www.cnblogs.com/xiaobai686/p/11681958.html
Copyright © 2020-2023  润新知