zoukankan      html  css  js  c++  java
  • Python 正则表达式分组

    被括号括起来的表达式将作为一个整体,也就是一个分组:

    In [43]: str = "Jan 26 16:41:27 localhost dhclient[1480]: bound to 192.168.119.128 -- renewal in 750 seconds."
    
    In [44]: reg = re.compile(r'(w+ d+ [d:]+) (w+) .*')    # 把日期和时间匹配到一组,把来源主机匹配到一组
    
    In [45]: reg.findall(str)                        # 另外,虽然.*匹配到剩下的所有内容,但默认只打印匹配到的分组的内容
    Out[45]: [('Jan 26 16:41:27', 'localhost')]         

    我们可以给分组起一个名字,这种分组叫做有名分组:

    In [52]: str = "Jan 26 16:41:27 localhost dhclient[1480]: bound to 192.168.119.128 -- renewal in 750 seconds."
    
    In [53]: reg = re.compile(r'(?P<datetime>w+ d+ [d:]+) (?P<hostname>w+) .*')    # 有名分组的语法:(?P<group_name>pattern)
    
    In [54]: result = reg.search(str)    # 需要用search()方法来进行匹配,因为该方法有group()可以指定打印哪个匹配到的分组
    
    In [55]: result.group('datetime')    # 根据组名来获取匹配到的分组的内容
    Out[55]: 'Jan 26 16:41:27'
    
    In [56]: result.group('hostname')   
    Out[56]: 'localhost'
    
    In [57]: result.groupdict()    # 还可以用groupdict()以字典的形式返回所有分组
    Out[57]: {'datetime': 'Jan 26 16:41:27', 'hostname': 'localhost'}

        

  • 相关阅读:
    Selenium2+python自动化17-JS处理滚动条
    图论一
    HDU1106
    银行家算法学习笔记
    NYOJ 540
    我在博客园 2013-08-02 22:04 200人阅读 评论(0) 收藏
    编程之美:平面最近点对
    RIA算法解决最小覆盖圆问题
    求两直线交点和三角形内外心
    求圆心
  • 原文地址:https://www.cnblogs.com/pzk7788/p/10322710.html
Copyright © 2011-2022 走看看