IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    [原]3.2.1 正则表达式的语法(1)

    caimouse发表于 2015-07-25 10:18:19
    love 0

    (?...)

    这个语法规则是前面的扩展,主要在问号位置可以替换为特定的字符。

    例子:

    print('(?...)')

    m = re.findall(r'(a...)', r'abcdefaghijk')

    if m:

        print(m) 

    输出结果如下:

    (?...)

    ['abcd', 'aghi']


    (?#...)

    括号内容注释掉,不起作用。在正则表达式分析时,跳过这些规则。

    例子:

    print('(?#a)')

    m = re.findall(u'(?#a)i', u'aiLmsux aaaadefagaiLmsuxhijk')

    if m:

        print(m)  

    输出结果如下:

    (?#a)

    ['i', 'i', 'i']

     

    (?=...)

    向前提前识别模式,当向前面字符符合等号中的字符时,就认为匹配了,但这些字符不跳过。比如Isaac(?=Asimov),在Isaac字符后面碰到Asimov字符才会把这个Isaac识别出来,但Asimov不会跳过去。

    例子:

    import re

     

     

    print('Isaac(?=Asimov)')

    m = re.findall(u'Isaac(?=Asimov)', u'abcdIsaacAsimovttttt')

    if m:

        print(m)

    输出结果如下:

    Isaac(?=Asimov)

    ['Isaac']



    蔡军生 QQ:9073204 深圳



沪ICP备19023445号-2号
友情链接