zoukankan      html  css  js  c++  java
  • python-day23(正则表达式,RE)

    一. 正则表达式

      元字符

      .   匹配出换行符以外的所有字符

      w匹配数字  字母  下划线

      s 匹配 空白符

      单词的末尾

      d 匹配数字

      W  非 数字 字母 下划线

      D  非数字

      S 非空白符

      ^ 开头

      $ 结尾

      [ ] 字符组

      [ ^ ] 除了字符组中的元素外

      量词 限定符

      *  {0,n}

      + {1,n}

      ? 零或一

      {n} n次

      {p,} p,或更多

      {n,m} n-m次

      贪婪匹配: * + {} 尽可能的多匹配结果

      .*  匹配除换行符

      .+ 

      ----------

      分组()

    # 这个分组是优先级
    lst = re.findall(r"www.(baidu|oldboy).com","www.oldboy.com")
    print(lst)
    
    #(?: ) 去掉优先级
    lst = re.findall(r"www.(?:baidu|oldboy).com","www.oldboy.com")
    print(lst)

      转义  

         换行

      \n 

       .  转义

       /转义

       ?转义

    二. re模块  

      findall() 获取到匹配的所有内容

    lst = re.findall('w+','alex and exo')
    print(lst)

      finditer() 匹配到所有内容  返回迭代器

    it = re.finditer('w+','mai l fo leng ') #返回的迭代器
    for el in it:
        print(el.group())

      search()  搜索. 查到了就返回

    res = re.search('e','eeeeaassd') #搜索,搜到结果就返回
    print(res.group())

      match()  匹配. 从头开始匹配

    res = re.match('w+','alex is not a good man')#从头匹配,如果匹配到了就返回
    print(res.group())

      r"(?P<name>正则)"

     其他

      

    # 替换
    ret = re.sub(r"d+","_sb_","alex333wusir333")
    print(ret)
    
    #替换,返回的结果带有次数
    res = re.subn(r"d+","_sb_","alex333wusir333")
    print(res)
    obj = re.compile(r'alex(?P<name>d+)and') #把正则表达式预加载
    res = obj.search('alex250andwusir38ritian2')
    print(res.group())
    print(res.group('name'))
    
    res = re.search(r'a(?P<name>d)','a1wsdweq1qaqa2')
    print(res.group())
    print(res.group('name'))
  • 相关阅读:
    Ocelot简易教程(二)之快速开始1
    Ocelot简易教程(一)之Ocelot是什么
    InfluxDB学习之InfluxDB的基本操作
    InfluxDB入门教程
    .NET Core微服务之基于App.Metrics+InfluxDB+Grafana实现统一性能监控
    .net Core 微服务
    IdentityServer4 接口说明
    WINDOWS命令行关闭本地占用的端口
    并发负载压力测试
    C#操作Mongodb
  • 原文地址:https://www.cnblogs.com/Thui/p/9971542.html
Copyright © 2011-2022 走看看