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> <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> <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"\b[a-zA-z]+\b",word))