• re模块中的方法


    # re模块中的方法
    import re
    
    # findall() 返回所有满足匹配的结果放到列表中
    
    # search() 函数会在字符串内查找模式匹配,只到找到第一个匹配然后返回一个包含匹配信息的对象, 如果字符串没有匹配,则返回None。
    # 可以通过调用group()方法得到匹配的字符串
    
    # match() 同search,相当于在search的基础上加上^,只匹配开头的
    
    # split() 示例来解释
    ret = re.split('[ab]', 'abcd')
    print(ret)
    # 结果为 ['', '', 'cd']
    # 先按'a'分割得到''和'bcd',在对''和'bcd'分别按'b'分割
    # 注意:如果分割符是字符串的开头,则会产生一个''
    
    # re.sub() 参数:源内容,新内容,目标字符串,需要替换的次数
    ret = re.sub('d+', 'A', 'jack2455asf54kll987', 2)  # 将字符串中的数字替换为A,替换2次
    print(ret)
    # 结果为 jackAasfAkll987
    
    # re.subn() 返回元组,元组中的内容为替换后的结果与替换的次数
    ret = re.subn('d+', 'A', 'jack2455asf54kll987')
    print(ret)
    # 结果为 ('jackAasfAkllA', 3)
    
    # re.complie() 将匹配规则放到对象中,使用时可以多次调用该规则
    com = re.compile('d+')
    ret = com.findall('asdf1565asdl;fk14asdf588aa')
    print(ret)
    
    # finditer() 返回所有满足匹配的结果放到一个迭代器中
    ret = re.finditer('d', 'ds3sy4784a')
    print(ret)  # <callable_iterator object at 0x10195f940>
    
    print(next(ret).group())
    print(next(ret).group())
    
    # 注意
    ret = re.findall('www.(baidu|oldboy).com', 'www.oldboy.com')
    print(ret)  # ['oldboy']     这是因为findall会优先把匹配结果组里内容返回,如果想要匹配结果,取消权限即可
    
    ret = re.findall('www.(?:baidu|oldboy).com', 'www.oldboy.com')  # ?: 代表取消权限
    print(ret)  # ['www.oldboy.com']
  • 相关阅读:
    php sendmail 安装配置
    linux 创建git 仓库
    laravel 项目 配置 nginx
    lnmp 搭建后,nginx下php文件404但是html文件正常访问【已解决】
    为什么 ++[[]][+[]]+[+[]] = 10 ?
    JS移动客户端--触屏滑动事件
    前端开发Vue框架--(一)
    Django数据库优化及事务
    Django聚合查询、分组查询、F与Q查询
    django篇--->十(auth模块)
  • 原文地址:https://www.cnblogs.com/dangrui0725/p/9446659.html
Copyright © 2020-2023  润新知