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

  • 相关阅读:
    Linux内核调试方法总结之ftrace
    Linux内核调试方法总结之ptrace
    Linux内核调试方法总结之ltrace
    文件处理
    python基础之字符编码
    第三篇:python基础之数据类型与变量
    第二篇:python基础之核心风格
    数据类型、字符编码、文件处理
    python入门
    爬取加载页面数据
  • 原文地址:https://www.cnblogs.com/paranoia/p/6182407.html
Copyright © 2011-2022 走看看