zoukankan      html  css  js  c++  java
  • Python for Informatics 第11章 正则表达式二(译)

    注:文章原文为Dr. Charles Severance 的 《Python for Informatics》。文中代码用3.4版改写,并在本机测试通过。

    11.1 正则表达式的字符匹配

      我们可以用许多其它的特殊字符创建更加强大的正则表达式。最常用的特殊符号是可匹配任何字符的句号(".")。在以下的示例中,正则表达式”F..m:“将匹配”From:”,“Fxxm:",”F12m:“,或者”F!@m:“等类似字符串,因为表达式中间的句号可匹配任何字符。

    1 import re
    2 hand = open('mbox-short.txt')
    3 for line in hand:
    4     line = line.rstrip()
    5     if re.search('^F..m:', line):
    6         print line

      在正则表达式中组合使用表示一个字符任意重复次数的星号(”*")和加号("+")会使表达式特别强大。其中星号表示在查找的字符串中,匹配字符可以重复出现零次以上,而加号则是重复一次以上。

      在下面的示例中,我们使用重复的通配符进一步缩小我们的查找范围:

    1 import re
    2 hand = open('mbox-short.txt')
    3 for line in hand:
    4     line = line.rstrip()
    5     if re.search('^From:.+@', line):
    6         print(line)

      查找字符串“From:.+@”将成功匹配那些以“From:”开头,接着跟着一个以上任意字符,再跟着一个“@”符的行。所以这会匹配类似以下的行:

    From: stephen.marquard @uct.ac.za

    这个".+"通配符扩展匹配所有从冒号到@符之间的所有字符。

    From:.+@

    加号和星号符的“一意孤行”的被认为是好的。例如以下的字符串将被外推至最后的@符而匹配:

    From:stephen.marquard@uct.ac.za, csev@umich.edu, and cwen @iupui.edu

    让星号符和加号符不这么贪婪也是可以的,但是需要添加另外的符号。如何关闭它们贪婪的行为请参看详细的文档。

  • 相关阅读:
    极验验证(滑动验证)的使用
    from close /destory
    tmeminifile and tinifile
    Delphi的OverRide、OverLoad和Virtual方法
    XE6 FMX之控件绘制与显示
    Delphi Android程序启动过程
    Delphi中的容器类
    接口
    集合
    class methed
  • 原文地址:https://www.cnblogs.com/zhengsh/p/5402151.html
Copyright © 2011-2022 走看看