• 正则表达式re.findall和re.search的使用---面试


     

     

     面试举例:

    正则表达式匹配第一个URL,s = '<img data-original="https://rpic.douyucdn.cn/appCovers/2016/11/13/124871_23424435_small.jpg" ' 
    'src="https://rpic.douyucdn.cn/appCovers/2016/11/13/124871_23424435_small.jpg" style="display: incline;">'

    findall结果无需加group(),search需要加group()提取

     1 import re
     2 s = '<img data-original="https://rpic.douyucdn.cn/appCovers/2016/11/13/124871_23424435_small.jpg" ' 
     3     'src="https://rpic.douyucdn.cn/appCovers/2016/11/13/124871_23424435_small.jpg" style="display: incline;">'
     4 # re.findall在字符串中找到正则表达式所匹配的所有子串,并返回一个列表,如果没有找到匹配的,则返回空列表。
     5 # 注意: match 和 search 是匹配一次 findall 匹配所有。
     6 res = re.findall(r"https://.*?.jpg", s)[0]
     7 print(res)
     8 
     9 # re.search 扫描整个字符串并返回第一个成功的匹配。匹配成功re.search方法返回一个匹配的对象,否则返回None。
    10 res = re.search(r"https://.*?.jpg", s)
    11 print(res.group())
    
    

    运行结果:

    如果修改如下,则报错:

    下面的验证证明了re.search方法返回的是一个匹配成功的对象,而不是返回一个列表之类的。

     
  • 相关阅读:
    数学与基本思维
    思考与知识
    数学思想
    肥胖是罪、食物有毒
    高血压成因
    心脑血管疾病
    知行合一与人
    所谓的成长就是认知升级-成长就是应付自如
    深度思考
    “三高”即通常所说的高血压、高血脂(血脂异常)和高血糖三种病症的总称
  • 原文地址:https://www.cnblogs.com/annatest/p/13630311.html
Copyright © 2020-2023  润新知