zoukankan      html  css  js  c++  java
  • python正则表达式函数match()和search()的区别详解

    match()和search()都是python中的正则匹配函数,那这两个函数有何区别呢?

    match()函数只检测RE是不是在string的开始位置匹配, search()会扫描整个string查找匹配, 也就是说match()只有在0位置匹配成功的话才有返回,如果不是开始位置匹配成功的话,match()就返回none

    例如:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    #! /usr/bin/env python
    # -*- coding=utf-8 -*-
      
    import re
      
    text = 'pythontab'
    = re.match(r"w+", text)
    if m: 
        print m.group(0)
    else:
        print 'not match'

    结果是:pythontab

    而:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    #! /usr/bin/env python
    # -*- coding=utf-8 -*-
    #
      
    import re
      
    text = '@pythontab'
    = re.match(r"w+", text)
    if m: 
        print m.group(0)
    else:
        print 'not match'

    结果是:not match

    search()会扫描整个字符串并返回第一个成功的匹配

    例如:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    #! /usr/bin/env python
    # -*- coding=utf-8 -*-
    #
      
    import re
      
    text = 'pythontab'
    = re.search(r"w+", text)
    if m: 
        print m.group(0)
    else:
        print 'not match'

    结果是:pythontab

    那这样呢:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    #! /usr/bin/env python
    # -*- coding=utf-8 -*-
    #
      
    import re
      
    text = '@pythontab'
    = re.search(r"w+", text)
    if m: 
        print m.group(0)
    else:
        print 'not match'

    结果是:pythontab

  • 相关阅读:
    访问者模式-Visitor Pattern
    jsp页面包含的几中方式
    Java Excel API的使用
    Java中导入、导出Excel
    【Oracle】OVER(PARTITION BY)函数用法
    myeclipse编辑jsp页面卡死
    myeclipse 最佳设置
    echarts学习总结
    java中 json和bean list map之间的互相转换总结
    泛型设计<T, PK extends Serializable>
  • 原文地址:https://www.cnblogs.com/paranoia/p/6182407.html
Copyright © 2011-2022 走看看