zoukankan      html  css  js  c++  java
  • Python基础16模块-re模块

    1.正则表达式#^表示在字符串开头匹配,$表示在字符串结尾匹配

    #*匹配0到无穷多个
    #+匹配1到无穷多个
    #?匹配0或者1个
    #{}定义匹配个数{0,}==*,{1,}==+,{0,1}==?,{6}=={1,6}
    #上面的元字符一般都是贪婪匹配,在后面加上?变成惰性匹配
    #[]匹配括号里的字符,只匹配一次,^表示不包含,-表示范围,表示转义字符,其他在中括号里都无特殊意义
    #d 匹配任何十进制的数
    #D 匹配任何非数字字符
    #s 匹配任何空白字符
    #S 匹配任何非空白字符 
    #w 匹配任何字母数字字符
    #W 匹配任何非字母数字字符
    # 匹配一个特殊边界字符,比如空格,#,&
    #?:去匹配优先级
    import re
    ret = re.findall("www.(baidu|163).com","www.baidu.com")
    print(ret)
    ret = re.findall("www.(?:baidu|163).com","www.baidu.com")
    print(ret)
    #注:类似由于在python解释器上会默认转化,这样传到re解释器上就会有差异,所以在re模块下应该变为\b或者用r''

    2.re模块的方法

    #search()匹配一个就返回,返回一个对象,如果匹配不到就不返回,用group()方法调用,如果正则表达式用分组形式如(?p<name>[a-z]+)则可用group(name)取出对应分组匹配的内容
    #match()从开头开始匹配,匹配一个就返回,返回一个对象,同样用group()调用
    #findall()所有符合正则表达式的都匹配,返回一个列表
    #split()用正则表达式匹配的字符串进行分割,如re.split("[ab]","abc")结果为[" "," ","c"]先按照a分割再对结果按照b分割
    #compile()绑定正则表达式
    import re
    com = re.compile("d+")
    print(com.findall("fjsdf123eewfwe564sdf"))
    #结果为:['123', '564']                            
    #finditer()所有符合正则表达式的都匹配,返回一个迭代器
    import re
    ret = re.finditer("d","sdf145dfsdf5456")
    print(next(ret).group())
    print(next(ret).group())
    #结果为1
    #     4
    #sub()将正则表达式匹配的字符串替换成指定字符串如:re.sub("d","A","a12f")结果为"aAAf",默认为全部替换,也可指定替换次数,如:re.sub("d","A","a12f",1)表示只匹配一次,结果为"aA2f"
    #subn()跟sub()功能一样,返回的是一个元组,包含结果跟匹配的次数

      

  • 相关阅读:
    @NotNull @NotBlank @NotEmpty
    springboot @valid与@validated的参数校验使用总结
    一张表多个外键指向同一主键
    关于List的remove()方法
    双数据源切换问题
    前端通过jqplot绘制折线图
    关于js与jquery中的文档加载
    Mybatis中typeAliases的使用
    项目中常见数据库知识
    html中实现倒计时功能(setInterval,clearInterval)
  • 原文地址:https://www.cnblogs.com/josie930813/p/9816320.html
Copyright © 2011-2022 走看看