• 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  深圳

  • 相关阅读:
    那些容易忽略的事4-(正则表达式反向引用 )
    那些容易忽略的事3-(变量提升和函数提升)
    那些容易忽略的事(2)
    那些容易忽略的事(1) -变量与运算符+
    call()与apply()传参需要注意的一点
    CSS凹型导航按钮
    动态的99乘法表
    js中的for-of循环遍历数组
    交换2个变量的值
    gl.disableVertexArray P77 关闭location指定的attribute变量
  • 原文地址:https://www.cnblogs.com/tlnshuju/p/7258239.html
Copyright © 2020-2023  润新知