zoukankan      html  css  js  c++  java
  • python之路--内置函数03

    一 . 正则表达式 匹配字符串

      元字符
      . 除了换行
      w 数字, 字母, 下划线
      d 数字
      s 空白符
      
    
      	
       单词的边界
      W 非xxx
      D
      S
      [ ] 字符组 or的关系
      [^xxx] 非xxxx
      ^ 字符串的开始
      $ 字符串的结束
      | 或者
    
      ' ' 啥都能匹配
    量词
      * 0->n
      + 1->n
      ? 0->1
      {p} p次
      {p,q} p->q次
      {p,} 至少p次
    
    贪婪和惰性
      .*
      .+
      惰性:
      .*?宝宝 尽可能少的匹配
    
    转义 \\n => \n => 
    
      正则前面加r
    
    分组 ()

    二 . 在python中使用正则. re

      (?P<name>正则)
      1. search() 搜索. 搜索到第一个结果返回

    import re
    # search 搜索, 查找
    # 一旦匹配到结果. 直接返回, 如果匹配不到结果. 返回None
    result = re.search("d+", "宝宝45的电话是123")
    print(result) # <_sre.SRE_Match object; span=(6, 9), match='123'>
    print(result.group()) # 45

      2. match() 匹配. 收到一个结果返回. 从头开始匹配

    import re
    # 匹配, 从头开始匹配. 相当于在你正则前面加了一个^
    result = re.match("d+", "434宝宝的电话是:")
    print(result.group())  # 434
    # search和match的区别:  search查找. 找到了结果就返回. match. 从头开始匹配.


      3. findall() 查找所有匹配结果

    import re
    result = re.findall("d+", "baby的电话号是: 185123456789")
    print(result) # ['185123456789']

      4. finditer() 返回迭代器.

    import re
    it = re.finditer("d+", "baby123456789的电话号是: 185123456789")
    for el in it:
        print(el.group()) # 分组  123456789   185123456789

      5. compile() 编译
      6. group("name") 获取数据
      7. re.S 干掉 . 的换行

  • 相关阅读:
    HDU 4388 To the moon
    HDU 4757 Tree
    HDU 5816 Hearthstone
    hihocoder 1356 分隔相同整数
    HDU 5726 GCD
    POJ3026 Borg Maze(Prim)(BFS)
    POJ1258 Agri-Net(Prim)
    POJ1751 Highways(Prim)
    POJ2349 Arctic Network(Prim)
    POJ1789 Truck History(Prim)
  • 原文地址:https://www.cnblogs.com/attila/p/10193080.html
Copyright © 2011-2022 走看看