zoukankan      html  css  js  c++  java
  • python正则表达式

    re.findall

    在字符串中找到正则表达式所匹配的所有子串,并返回一个列表,如果没有找到匹配的,则返回空列表。

    注意: match 和 search 是匹配一次,findall 匹配所有。

    >>> re.findall(r'd+','asda123sad456')
    ['123', '456']
    >>> line='1000:70cdd97a5ed8f877e3f79a2b78fd6c8b'
    >>> target = re.findall(r"(.+):(.+)",line)
    >>> target
    [('1000', '70cdd97a5ed8f877e3f79a2b78fd6c8b')]

    re.search 扫描整个字符串并返回第一个成功的匹配

    匹配成功re.search方法返回一个匹配的对象,否则返回None。

    我们可以使用group(num) 或 groups() 匹配对象函数来获取匹配表达式。

    import re
     
    line = "Cats are smarter than dogs";
     
    searchObj = re.search( r'(.*) are (.*?) .*', line, re.M|re.I)
     
    if searchObj:
       print "searchObj.group() : ", searchObj.group()
       print "searchObj.group(1) : ", searchObj.group(1)
       print "searchObj.group(2) : ", searchObj.group(2)
    else:
       print "Nothing found!!"
    输出
    searchObj.group() : Cats are smarter than dogs searchObj.group(1) : Cats searchObj.group(2) : smarter

    re.match与re.search的区别

    re.match只匹配字符串的开始,如果字符串开始不符合正则表达式,则匹配失败,函数返回None;而re.search匹配整个字符串,直到找到一个匹配。

    import re
     
    line = "Cats are smarter than dogs";
     
    matchObj = re.match( r'dogs', line, re.M|re.I)
    if matchObj:
       print "match --> matchObj.group() : ", matchObj.group()
    else:
       print "No match!!"
     
    matchObj = re.search( r'dogs', line, re.M|re.I)
    if matchObj:
       print "search --> matchObj.group() : ", matchObj.group()
    else:
       print "No match!!"

    输出

    No match!!
    search --> matchObj.group() :  dogs
  • 相关阅读:
    数据类型
    java基础
    Codeforces Round #655 (Div. 2) B. Omkar and Last Class of Math(数论)
    Codeforces Round #655 (Div. 2) A. Omkar and Completion(构造)
    LibreOJ
    QT入门-QMainWindow类
    WCF 请求与响应参数大小设置
    Python 代码性能优化技巧
    lists,tuples and sets of Python
    SQL Language
  • 原文地址:https://www.cnblogs.com/nevermore29/p/10979225.html
Copyright © 2011-2022 走看看