zoukankan      html  css  js  c++  java
  • 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']
  • 相关阅读:
    uvm_cookbook--sequences--wait for a signal
    Makefile目标文件搜索(VPATH和vpath
    git stash
    vuex-persist,解决vuex中的数据刷新页面之后丢失的问题
    element表格中的输入框有时会存在输入不上的情况
    简单 Linux 文件系统?
    Shell 脚本是什么?
    什么是BASH?
    如何规划一台 Linux 主机,步骤是怎样?
    什么是GUI?
  • 原文地址:https://www.cnblogs.com/dangrui0725/p/9446659.html
Copyright © 2011-2022 走看看