日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長提供免費收錄網(wǎng)站服務(wù),提交前請做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

re模塊的高級用法

search

需求:匹配出文章閱讀的次數(shù)

#coding=utf-8
import re
ret = re.search(r"d+", "閱讀次數(shù)為 9999")
ret.group()

運行結(jié)果

'9999'

findall

需求:統(tǒng)計出Python、c、c++相應(yīng)文章閱讀的次數(shù)

#coding=utf-8
import re
ret = re.findall(r"d+", "python = 9999, c = 7890, c++ = 12345")
print(ret)

運行結(jié)果:

['9999', '7890', '12345']

sub 將匹配到的數(shù)據(jù)進行替換

需求:將匹配到的閱讀次數(shù)加1

方法1:

#coding=utf-8
import re
ret = re.sub(r"d+", '998', "python = 997")
print(ret)

運行結(jié)果:

python = 998

方法2:

#coding=utf-8
import re
def add(temp):
 strNum = temp.group()
 num = int(strNum) + 1
 return str(num)
ret = re.sub(r"d+", add, "python = 997")
print(ret)
ret = re.sub(r"d+", add, "python = 99")
print(ret)

運行結(jié)果:

python = 998
python = 100

練習(xí)

python正則表達式re模塊的高級用法

 

從下面的字符串中取出文本

<div>
 <p>崗位職責(zé):</p>
<p>完成推薦算法、數(shù)據(jù)統(tǒng)計、接口、后臺等服務(wù)器端相關(guān)工作</p>
<p><br></p>
<p>必備要求:</p>
<p>良好的自我驅(qū)動力和職業(yè)素養(yǎng),工作積極主動、結(jié)果導(dǎo)向</p>
<p> <br></p>
<p>技術(shù)要求:</p>
<p>1、一年以上 Python 開發(fā)經(jīng)驗,掌握面向?qū)ο蠓治龊驮O(shè)計,了解設(shè)計模式</p>
<p>2、掌握HTTP協(xié)議,熟悉MVC、MVVM等概念以及相關(guān)WEB開發(fā)框架</p>
<p>3、掌握關(guān)系數(shù)據(jù)庫開發(fā)設(shè)計,掌握 SQL,熟練使用 MySQL/PostgreSQL 中的一種<br></p>
<p>4、掌握NoSQL、MQ,熟練使用對應(yīng)技術(shù)解決方案</p>
<p>5、熟悉 JAVAscript/css/html5,JQuery、React、Vue.js</p>
<p> <br></p>
<p>加分項:</p>
<p>大數(shù)據(jù),數(shù)理統(tǒng)計,機器學(xué)習(xí),sklearn,高性能,大并發(fā)。</p>
 </div>

參考答案:

re.sub(r"<[^>]*>| |n", "", test_str)

split 根據(jù)匹配進行切割字符串,并返回一個列表

需求:切割字符串“info:xiaoZhang 33 shandong”

#coding=utf-8
import re
ret = re.split(r":| ","info:xiaoZhang 33 shandong")
print(ret)

運行結(jié)果:

['info', 'xiaoZhang', '33', 'shandong']

python貪婪和非貪婪

Python里數(shù)量詞默認(rèn)是貪婪的(在少數(shù)語言里也可能是默認(rèn)非貪婪),總是嘗試匹配盡可能多的字符;

非貪婪則相反,總是嘗試匹配盡可能少的字符。

在"*","?","+","{m,n}"后面加上?,使貪婪變成非貪婪。

>>> s="This is a number 234-235-22-423"
>>> r=re.match(".+(d+-d+-d+-d+)",s)
>>> r.group(1)
'4-235-22-423'
>>> r=re.match(".+?(d+-d+-d+-d+)",s)
>>> r.group(1)
'234-235-22-423'
>>>

正則表達式模式中使用到通配字,那它在從左到右的順序求值時,會盡量“抓取”滿足匹配最長字符串,在我們上面的例子里面,“.+”會從字符串的啟始處抓取滿足模式的最長字符,其中包括我們想得到的第一個整型字段的中的大部分,“d+”只需一位字符就可以匹配,所以它匹配了數(shù)字“4”,而“.+”則匹配了從字符串起始到這個第一位數(shù)字4之前的所有字符。

解決方式:非貪婪操作符“?”,這個操作符可以用在"*","+","?"的后面,要求正則匹配的越少越好。

>>> re.match(r"aa(d+)","aa2343ddd").group(1)
'2343'
>>> re.match(r"aa(d+?)","aa2343ddd").group(1)
'2'
>>> re.match(r"aa(d+)ddd","aa2343ddd").group(1) 
'2343'
>>> re.match(r"aa(d+?)ddd","aa2343ddd").group(1)
'2343'
>>>

練一練

python正則表達式re模塊的高級用法

 

字符串為:

<img data-original="https://rpic.douyucdn.cn/AppCovers/2016/11/13/1213973_201611131917_small.jpg" src="https://rpic.douyucdn.cn/appCovers/2016/11/13/1213973_201611131917_small.jpg" style="display: inline;">

請?zhí)崛rl地址

參考答案

re.search(r"https://.*?.jpg", test_str)

r的作用

>>> mm = "c:\a\b\c"
>>> mm
'c:\a\b\c'
>>> print(mm)
c:abc
>>> re.match("c:\\",mm).group()
'c:\'
>>> ret = re.match("c:\\",mm).group()
>>> print(ret)
c:
>>> ret = re.match("c:\\a",mm).group()
>>> print(ret)
c:a
>>> ret = re.match(r"c:\a",mm).group()
>>> print(ret)
c:a
>>> ret = re.match(r"c:a",mm).group()
Traceback (most recent call last):
 File "<stdin>", line 1, in <module>
AttributeError: 'NoneType' object has no attribute 'group'
>>>

說明

Python中字符串前面加上 r 表示原生字符串,

與大多數(shù)編程語言相同,正則表達式里使用"“作為轉(zhuǎn)義字符,這就可能造成反斜杠困擾。假如你需要匹配文本中的字符”",那么使用編程語言表示的正則表達式里將需要4個反斜杠"":前兩個和后兩個分別用于在編程語言里轉(zhuǎn)義成反斜杠,轉(zhuǎn)換成兩個反斜杠后再在正則表達式里轉(zhuǎn)義成一個反斜杠。

Python里的原生字符串很好地解決了這個問題,有了原生字符串,你再也不用擔(dān)心是不是漏寫了反斜杠,寫出來的表達式也更直觀。

>>> ret = re.match(r"c:\a",mm).group()
>>> print(ret)
c:a

分享到:
標(biāo)簽:正則表達式
用戶無頭像

網(wǎng)友整理

注冊時間:

網(wǎng)站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨大挑戰(zhàn)2018-06-03

數(shù)獨一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學(xué)四六

運動步數(shù)有氧達人2018-06-03

記錄運動步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績評定2018-06-03

通用課目體育訓(xùn)練成績評定