zoukankan      html  css  js  c++  java
  • 3.2.1 正則表達式的语法(2)

    (?!...)

    向前识别不等于指定字符就匹配。当下一个单词不等于...时就识别出来括号前面指定的单词。

    比方Isaac(?

    !Asimov)。就会这样推断。当紧跟着Isaac后面不是单词Asimov时,就把它匹配出来。

    样例:

    print('Isaac(?!Asimov)')

    print(u'abcdAsimovIsaacttttt')

    m = re.findall(u'Isaac(?

    !Asimov)', u'abcdAsimovIsaacttttt')

    if m:

        print(m)

    print(u'abcdIsaacAsimovttttt')

    m = re.findall(u'Isaac(?

    !Asimov)', u'abcdIsaacAsimovttttt')

    if m:

        print(m)

    输出结果例如以下:

    Isaac(?

    !Asimov)

    abcdAsimovIsaacttttt

    ['Isaac']

    abcdIsaacAsimovttttt

    (?

    <=...)

    向后识别等于指定字符。这里所谓向后,就是已经扫描过的字符。比方(?<=cai)mouse规则,就是碰到caimouse时,就把mouse识别出来,意思就是扫描到mouse时,须要往回查看已经扫描的字符是否是cai,假设是就匹配成功。

    样例:

    print('(?<=cai)mouse')

    m = re.findall(u'(?

    <=cai)mouse', u'caimouse mousecai ccaimouse')

    if m:

        print(m)

    结果输出例如以下:

    (?

    <=cai)mouse

    ['mouse', 'mouse']

    (?<!...)

    向后识别不等于指定字符。这里所谓向后。就是已经扫描过的字符。比方(?<!cai)mouse规则。就是碰到mouse时,在它前面不能是字符cai,假设是cai就不匹配成功。

    样例:

    print('(?<!cai)mouse')

    m = re.findall(u'(?<!cai)mouse', u'caimouse mousecai ccaimouse')

    if m:

        print(m)

    结果输出例如以下:

    (?<!cai)mouse

    ['mouse']



    蔡军生 QQ:9073204  深圳

  • 相关阅读:
    CrawlSpiders
    从抓取Tencent中学习Scrapy
    对象返回规范的url的两种方式的两种方式
    多对多关系的额外字段
    Django定时任务
    Scripy学习(一)
    Django开发博客一(搭建模型和准备数据)
    求并集
    求子集、交集
    java数学函数Math类中常用的方法
  • 原文地址:https://www.cnblogs.com/tlnshuju/p/7258239.html
Copyright © 2011-2022 走看看