1. 程式人生 > >7.2 正則貪婪模式

7.2 正則貪婪模式

ret 關系數據庫 clas mys script ima pri split cdn

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

7.2 正則貪婪模式