zoukankan      html  css  js  c++  java
  • re模块

    re模块就是让我们能用正则表达式的语法去操作字符串。

    正则表达式是一种小型的、高度专业化的编程语言。正则表达式被编译成一系列的字节码,然后由C编写的匹配引擎执行。

    关于正则的语法,看我的另一篇博客:https://www.cnblogs.com/kuxingseng95/p/9461424.html

    re模块的常用方法:

    import re
    
    # 1.findall,返回所有满足匹配条件的结果,放在列表里,如果正则中有分组,它只会把匹配到的分组信息放到列表中,
    print(re.findall('a.', 'adfjsac'))      # ['ad', 'ac']
    print(re.findall('www.(baidu).com',"www.baidu.com" ))  # ['baidu']
    # 如果我们只想要它分组,而不只保存分组信息的话可以在左括号后面加"?:"
    print(re.findall('www.(?:baidu).com',"www.baidu.com" ))  # ['www.baidu.com']
    
    # 2,search,函数会在字符串内查找模式匹配,只到找到第一个匹配然后返回一个包含匹配信息的对象,该对象可以通过调用group()方法得到匹配的字符串,如果字符串没有匹配,则返回None。
    print(re.search('a+', 'bbbbbbbb'))      # None
    print(re.search('b+', "bbbbbbbb"))      # <_sre.SRE_Match object; span=(0, 8), match='bbbbbbbb'>
    print(re.search('b+', "bbbbbbbb").group())      # bbbbbbbb
    
    # 3,match,同search,不过仅在字符串开始处进行匹配
    print(re.match('a', 'abc').group())  # a
    print(re.match('b', "abc"))         # None
    
    # 4,split
    ret = re.split('[ab]', 'abcd')  # 先按'a'分割得到''和'bcd',在对''和'bcd'分别按'b'分割
    print(ret)  # ['', '', 'cd']
    
    # 5,sub,查找替换,返回替换后的值。第一个参数是正则,第二个参数是要替换为什么,第三个参数是要查找替换的字符串,第四个参数是要替换的个数。
    ret = re.sub('d', 'abc', 'aaa5bbb6', 1)
    print(ret)  # aaaabcbbb6
    ret = re.subn('d', 'abc', 'aa5bbb6')       # subn会多返回一个参数,就是匹配到的次数
    print(ret)  # ('aaabcbbbabc', 2)
    
    # 6,compile,写好匹配规则,然后可以使用其他的方法。
    obj = re.compile('d{3}')
    ret1 = obj.search('abc123eeee')
    print(ret1.group())  # 123
    ret2 = obj.findall('abc123eeee')
    print(ret2)     # ['123']
    
    # 7,迭代器方式查找,当数据量较大的时候适合
    ret = re.finditer('d', 'ds3sy4784a')
    print(ret)  # <callable_iterator object at 0x10195f940>
    
    print(next(ret).group())    # 3
    print(next(ret).group())    # 4
  • 相关阅读:
    [ZJOI2010]数字计数
    [SCOI2009]windy数
    [Tjoi2018]数学计算
    [ZJOI2008] 骑士
    [CQOI2009] 中位数
    11.7 模拟赛
    10.31 模拟赛
    随机游走
    10.29 模拟赛
    10.28 模拟赛
  • 原文地址:https://www.cnblogs.com/kuxingseng95/p/9462314.html
Copyright © 2011-2022 走看看