• python re 模块


    import re
    
    # findall('正则表达式',‘待匹配的字符串’)  #返回匹配到字符串,并存放在列表中
    text = 'abcdefg'
    res = re.findall('a..d', text)
    print(res)
    # ['abcd']
    
    #  函数会在字符串内按规则匹配,当找到第一个匹配结果时就结束查找,然后返回一个包含匹配信息的对象,该对象可以 通过   调用group()方法   得到匹配的字符串,
    # 如果没有匹配到字符串,则返回None
    ret = re.search('abc', 'this is abcABC').group()
    print(ret)  # 结果 : 'abc'
    
    # compile,先将正则编译后放入对象,后面可重复使用,当多次使用同一正则时,可提高效率
    obj = re.compile('d{3}')  # 将正则表达式编译成为一个 正则表达式对象,规则要匹配的是3个数字
    ret = obj.search('abc123eeee')  # 正则表达式对象调用search,参数为待匹配的字符串
    print(ret.group())  # 结果 : 123
    
    # match 在字符串开始处 就按规则匹配,其它 与search()函数使用方法一样
    ret = re.match('this', 'this is abcABC').group()
    print(ret)  # 结果 : 'this'
    
    # finditer ,跟findall功能相同,返回的是存放结果的迭代器
    ret = re.finditer('d', 'ds3sy4784a')
    print(ret)  # <callable_iterator object at 0x10195f940>
    print(next(ret).group())  # 查看第一个结果  '3'
    print(next(ret).group())  # 查看第二个结果  '4'
    print([i.group() for i in ret])  # 查看剩余的匹配结果 ['7', '8', '4']
    
    # sub 将数字替换成'H',参数1表示只替换1个
    ret = re.sub('d', 'H', 'eva3egon4yuan4', 1)
    print(ret)  # evaHegon4yuan4
    # subn 将数字替换成'H',返回元组(替换的结果,替换了多少次),即('evaHegonHyuanH', 3)
    ret = re.subn('d', 'H', 'eva3egon4yuan4')
    print(ret)  # ('evaHegonHyuanH', 3)
    
    # split 以字符分隔字符串成列表
    ret = re.split('[ab]', 'abcd')  # 先按'a'分割得到''和'bcd',在对''和'bcd'分别按'b'分割
    print(ret)  # ['', '', 'cd']
    
    ret = re.split("d+", "eva3egon4yuan")
    print(ret)  # 结果 : ['eva', 'egon', 'yuan']
    
    ret = re.split("(d+)", "eva3egon4yuan")
    print(ret)  # 结果 : ['eva', '3', 'egon', '4', 'yuan']
    
    # 在匹配部分加上()之后所切出的结果是不同的,
    # 没有()的没有保留所匹配的项,但是有()的却能够保留了匹配的项,
    # 这个在某些需要保留匹配部分的使用过程是非常重要的。
  • 相关阅读:
    PHP fread() 函数
    PHP fputs() 函数
    PHP fputcsv() 函数
    PHP fpassthru() 函数
    分区表基本类型
    C# const 和 readonly 有什么区别
    win2d 画出好看的图形
    win2d 画出好看的图形
    win2d 渐变颜色
    win2d 渐变颜色
  • 原文地址:https://www.cnblogs.com/kehaimin/p/11471188.html
Copyright © 2020-2023  润新知