财富坊cff888 /
  • tensorflow /
  • 正则表达式 /
  • 在前面学习过的正则表达式都是紧凑格式的表示方式,当你写的正则表达式比较长,比较复杂时,发现经常会写错,或者很难维护,遇到这种情况怎么办呢?这个不用急,聪明的设计人员早已经想到这种情况了,提供了一种叫做详细模式(Verbose mode expression)。当你使用这种模式时,可以给正则表达式添加注释,这样在维护时就不会像看天书了,同时也可以添加额外的空格,进行对齐排版。紧凑模式的例子:
    import re
    
    address = re.compile('[\w\d.+-]+@([\w\d.]+\.)+(com|org|edu)')
    
    candidates = [
        u'first.last@example.com',
        u'first.last+category@gmail.com',
        u'valid-address@mail.example.com',
        u'not-valid@example.foo',
    ]
    
    for candidate in candidates:
        match = address.search(candidate)
        print('{:<30}  {}'.format(
            candidate, 'Matches' if match else 'No match')
        )


    详细模式的修改之后:
    #python 3.6
    #蔡军生 
    #/bc5/caimouse/article/details/51749579
    #
    import re
    
    address = re.compile(
        '''
        [\w\d.+-]+       # username
        @
        ([\w\d.]+\.)+    # domain name prefix
        (com|org|edu)    # TODO: support more top-level domains
        ''',
        re.VERBOSE)
    
    candidates = [
        u'first.last@example.com',
        u'first.last+category@gmail.com',
        u'valid-address@mail.example.com',
        u'not-valid@example.foo',
    ]
    
    for candidate in candidates:
        match = address.search(candidate)
        print('{:<30}  {}'.format(
            candidate, 'Matches' if match else 'No match'),
        )

    结果输出如下:
    first.last@example.com? ? ? ? ? Matches
    first.last+category@gmail.com? ?Matches
    valid-address@mail.example.com? Matches
    not-valid@example.foo? ? ? ? ? ?No match


    参数解释:X? ? VERBOSE

    该标志通过给予你更灵活的格式以便你将正则表达式写得更易于理解。当该标志被指定时,在 RE 字符串中的空白符被忽略,除非该空白符在字符类中或在反斜杠之後;这可以让你更清晰地组织和缩进 RE。它也可以允许你将注释写入 RE,这些注释会被引擎忽略;注释用 "#"号 来标识,不过该符号不能在字符串或反斜杠之後。

    深入浅出Numpy
    http://edu.csdn.net/course/detail/6149?

    Python游戏开发入门

    http://edu.csdn.net/course/detail/5690

    你也能动手修改C编译器

    http://edu.csdn.net/course/detail/5582

    纸牌游戏开发

    http://edu.csdn.net/course/detail/5538?

    五子棋游戏开发

    http://edu.csdn.net/course/detail/5487
    RPG游戏从入门到精通
    http://edu.csdn.net/course/detail/5246
    WiX安装工具的使用
    http://edu.csdn.net/course/detail/5207
    俄罗斯方块游戏开发
    http://edu.csdn.net/course/detail/5110
    boost库入门基础
    http://edu.csdn.net/course/detail/5029
    Arduino入门基础
    http://edu.csdn.net/course/detail/4931
    Unity5.x游戏基础入门
    http://edu.csdn.net/course/detail/4810
    TensorFlow API攻略
    http://edu.csdn.net/course/detail/4495
    TensorFlow入门基本教程
    http://edu.csdn.net/course/detail/4369
    C++标准模板库从入门到精通?
    http://edu.csdn.net/course/detail/3324
    跟老菜鸟学C++
    http://edu.csdn.net/course/detail/2901
    跟老菜鸟学python
    http://edu.csdn.net/course/detail/2592
    在VC2015里学会使用tinyxml库
    http://edu.csdn.net/course/detail/2590
    在Windows下SVN的版本管理与实战?
    http://edu.csdn.net/course/detail/2579
    Visual Studio 2015开发C++程序的基本使用?
    http://edu.csdn.net/course/detail/2570
    在VC2015里使用protobuf协议
    http://edu.csdn.net/course/detail/2582
    在VC2015里学会使用MySQL数据库
    http://edu.csdn.net/course/detail/2672


    阅读全文
    版权声明:本文为博主原创文章,未经博主允许不得转载。

    python里使用正则表达式的详细模式(Verbose mode expression)

    在前面学习过的正则表达式都是紧凑格式的表示方式,当你写的正则表达式比较长,比较复杂时,发现经常会写错,或者很难维护,遇到这种情况怎么办呢?这个不用急,聪明的设计人员早已经想到这种情况了,提供了一种叫做...
    • caimouse
    • caimouse
    • 2017年11月02日 16:41
    • 3661

    python中最常用的re正则表达式总结

    import re x = re.search('r\D+a','123chenronghua') print(x.group()) s = re.search('r[a-z]+a','123chen...
    • weixin_41317950
    • weixin_41317950
    • 2018年01月09日 09:32
    • 42

    python里使用正则表达式的重复模式

    在前面学习的正则表达式,都是把每一个字符写出来的,但是如果有重复的字符,也需要写出来吗?比如重复1000个字符,这时全写出来就不是很聪明的做法了,那么怎么办呢?可以使用某种规则来生成。如下面的例子:#...
    • caimouse
    • caimouse
    • 2017年10月07日 14:14
    • 576

    正则表达式中模式修正符作用详解(i、g、m、s、x、e)

    正则表达式中常用的模式修正符有i、g、m、s、x、e等。它们之间可以组合搭配使用。 它们的作用如下: ?//修正符:i 不区分大小写的匹配; ???????? //如:"/abc/i"可以与abc...
    • onthewaygun
    • onthewaygun
    • 2013年08月16日 19:42
    • 1847

    Python正则表达式指南

    原文地址:http://www.cnblogs.com/huxi/archive/2010/07/04/1771073.html 作者:AstralWind 转载出处:博客园 本文介...
    • qq_36779888
    • qq_36779888
    • 2018年02月02日 23:02
    • 209

    python的正则表达式re模块的常用方法

    python的正则表达式re模块的常用方法 作者: 字体:[增加?减小] 类型:转载? Python 的 re 模块(Regular Expression 正则表达式)提供各种正则...
    • Eliza1130
    • Eliza1130
    • 2015年04月16日 21:44
    • 921

    python里使用正则表达式的ASCII模式

    目前,基本上都使用python3来开发了,但是有时为了兼容旧的python2的代码,在正则表达式里主要是字符串的表示方式不同了,在python3里是使用Unicode来表示字符串和正则表达式,而在py...
    • caimouse
    • caimouse
    • 2017年11月01日 20:50
    • 940

    3.2 re--正则表达式操作(Regular expression operations)

    本模块提供了正则表达式的匹配操作,它的功能跟Perl语言里的功能一样。?无论是Unicode字符串还是单字节8位组成的字符串,都可以使用模式匹配和字符串查找的功能。不过要注意的是Unicode字符串与...
    • caimouse
    • caimouse
    • 2015年07月12日 08:02
    • 1563

    Python 之 re模块 正则表达式

    正则对象(re object) search(): 最常用的,返回一个匹配对象(Match Object) match():类似search,但仅仅从文字的开始进行匹配; split():分割一个s...
    • VIP_WangSai
    • VIP_WangSai
    • 2016年08月02日 00:10
    • 2486

    python re 正则表达式

    夜深了,敲击键盘,整理下python?? re
    • u014614091
    • u014614091
    • 2014年04月25日 01:36
    • 948
    内容举报
    返回顶部
    收藏助手
    不良信息举报
    您举报文章:python里使用正则表达式的详细模式(Verbose mode expression)
    举报原因:
    原因补充:

    (最多只允许输入30个字)