zoukankan      html  css  js  c++  java
  • 7.2 正则贪婪模式

    #coding=utf-8
    #2018-7-2 11:25:00
    
    import re
    #写一个邮箱正则
    p = r"(w+)@(163|126|gmail|qq).(com|cn|net)$"
    r = re.match(p,"itcast@qq.com")
    print(r)
    b = r.group()
    print(b)
    # (?P<name>) 分组起名字
    #(?P = name) 引用别名为name分组匹配到字符串
    
    s = "<html><h1>itcast</h1></html>"
    
    c = re.match(r"<((?P<key1>).+)><(?P<key2>).+>.+</(?P=key2)></(?P=key1)>",s)
    print(c )
    
    #用sub讲匹配到的数据进行替换
    
    ret  = re.sub(r"d+",'988','python = 997')
    print(ret )
    
    #split 根据匹配进行切割字符串,并返回一个列表
    s = "itcast:php,python,cpp-java"
    
    a = re.split(r":|,|-",s)
    print(a)
    
    #python的贪婪模式
    """
    三个引号之间部分python仍然可以读取,
    只是没有运行,并且字符串保存格式
    """
    
    f = """
    <div>
            <p>岗位职责:</p>
    <p>完成推荐算法、数据统计、接口、后台等服务器端相关工作</p>
    <p><br></p>
    <p>必备要求:</p>
    <p>良好的自我驱动力和职业素养,工作积极主动、结果导向</p>
    <p>&nbsp;<br></p>
    <p>技术要求:</p>
    <p>1、一年以上 Python 开发经验,掌握面向对象分析和设计,了解设计模式</p>
    <p>2、掌握HTTP协议,熟悉MVC、MVVM等概念以及相关WEB开发框架</p>
    <p>3、掌握关系数据库开发设计,掌握 SQL,熟练使用 MySQL/PostgreSQL 中的一种<br></p>
    <p>4、掌握NoSQL、MQ,熟练使用对应技术解决方案</p>
    <p>5、熟悉 Javascript/CSS/HTML5,JQuery、React、Vue.js</p>
    <p>&nbsp;<br></p>
    <p>加分项:</p>
    <p>大数据,数理统计,机器学习,sklearn,高性能,大并发。</p>
    
            </div>
    """
    r = re.sub(r"<.+>","",f)  #非贪婪模式
    print(r)

     1 #方法有很多种,要多动脑筋!!!
     2 
     3 #提取其中的url
     4 url = """<img data-original="https://rpic.douyucdn.cn/appCovers/2016/11/13/1213973_201611131917_small.jpg"
     5  src="https://rpic.douyucdn.cn/appCovers/2016/11/13/1213973_201611131917_small.jpg">
     6 """
     7 #当你拿到数据比较多,是因为贪婪模式在作怪
     8 search  = re.search(r"https.+?.jpg",url).group()
     9 print(search)
    10 
    11 #提取网站 http://www.interoem.com/
    12 url1 = "http://www.interoem.com/messageinfo.asp?id=35"
    13 #逆向:正解的时候后面一串不好提取,前面好提取,.
    14 #所以先把前面定义好,然后用个匿名函数,去第一部分就好了
    15 r2 = re.sub(r"(http://.+?/).*",lambda x: x.group(1),url1)
    16 print(r2)
    17 
    18 word = "hello  world ha ha"
    19 #从分隔符的角度
    20 print(re.split(r" +",word))
    21 #描述单词特征的角度
    22 print(re.findall(r"[a-zA-z]+",word))
  • 相关阅读:
    Serverless
    使用excelJS实现excel文件转json文件
    使用excelJS实现json文件转excel文件
    git rebase 和 git merge的异同
    JS 箭头函数与普通函数的区别
    JS 节流函数(throttle)与防抖函数(debounce)
    http协议解析
    前端必会的js知识总结整理
    前端必会css整理
    推荐几个有趣的在线调试工具
  • 原文地址:https://www.cnblogs.com/zhen1996/p/9255594.html
Copyright © 2011-2022 走看看