zoukankan      html  css  js  c++  java
  • python正则匹配re.search与re.findall的区别

    对比 返回值类型 返回值
    re.search 返回一个对象。使用group()获得匹配的值,该值为str类型。 返回第一个成功的匹配
    re.findall 返回一个列表。列表中包含所有满足条件的结果。 所匹配的所有子串

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

    # -*- coding:utf-8 -*-
    import re
    str_a="name:zhangsan;age:20"
    searchResult=re.search("name:(.*?);",str_a)#匹配成功re.search方法返回一个匹配的对象,否则返回None
    #获得匹配得结果
    #1_包含匹配条件的结果
    searchResult_all=searchResult.group()#      name:zhangsan;
    #2_如果只想获得匹配上(.*?)
    searchResult_part=searchResult.group(1)#    zhangsan

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

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

    # -*- coding:utf-8 -*-
    import re
    str_a="name:zhangsan;age:20;name:lisi;"
    searchResult=re.findall("name:(.*?);",str_a)#返回一个列表  ['zhangsan', 'lisi']
    print (searchResult)
  • 相关阅读:
    JSON 在 IE 下不执行的问题
    一些UTF8编码问题
    如果你也想做一个Pinterest?
    关于apache虚拟机的NameVirtualHost错误
    如何玩转数据库设计
    mysql 导入数据时 max_allowed_packet 的问题
    几个练习题
    数组,for语句(补10.11)
    MySql数据库
    js基础(补10.10)
  • 原文地址:https://www.cnblogs.com/taoyuanming/p/10863865.html
Copyright © 2011-2022 走看看