熬了三天三夜义黎,終于正則表達(dá)式知識(shí)肝完了禾进!

基本每個(gè)會(huì)編程的朋友都聽說過正則b表達(dá)式,但是每次實(shí)際運(yùn)用的時(shí)候卻不知道怎么寫廉涕。

包括我

圖片

廢話不多說泻云,開始吧艇拍。

我們先還是來認(rèn)識(shí)一下什么是正則吧??

正則表達(dá)式,又稱規(guī)則表達(dá)式宠纯。(英語:Regular Expression卸夕,在代碼中常簡(jiǎn)寫為regex、regexp或RE)婆瓜,計(jì)算機(jī)科學(xué)的一個(gè)概念快集。正則表達(dá)式通常被用來檢索、替換那些符合某個(gè)模式(規(guī)則)的文本廉白。

不懂沒事个初,看下面你就知道了!

不管學(xué)習(xí)什么猴蹂,我們都需要知道它能給我們帶來什么院溺。

其實(shí)寫過爬蟲的朋友知道,我們有時(shí)候需要提取html中的一些特定內(nèi)容磅轻,這個(gè)時(shí)候用正則就顯得會(huì)方便很多珍逸。

除了爬蟲,在我們注冊(cè)某些網(wǎng)站聋溜,填寫密碼時(shí)候谆膳,會(huì)判斷密碼的復(fù)雜度,這個(gè)也是可以通過正則實(shí)現(xiàn)的撮躁。

除了以上還有很多漱病,例如寫算法題的時(shí)候正則一行代碼就可以解決、可以自定義正則屏蔽彈幕中的不良語言諸如此類的還有很多馒胆,我們下面也會(huì)提到缨称。

知道了正則能給我們帶來什么凝果,接下來我們來看看在哪寫正則呢祝迂?

其實(shí)在哪寫的說法不準(zhǔn)確,而是寫正則的工具有哪些器净?

在本篇文章中主要是用以上兩種方式進(jìn)行編寫型雳。

基本匹配

接下來,我們看看具體如何編寫山害。

首先纠俭,我們來看看正則的基本匹配,也就是你輸入什么浪慌,就會(huì)給你匹配什么冤荆。

圖片

這個(gè)大家都懂,所以沒必要細(xì)說权纤。

點(diǎn)運(yùn)算符

了解了基本匹配钓简,我們來看看點(diǎn)運(yùn)算符

對(duì)乌妒,沒錯(cuò),就是一個(gè)點(diǎn)

圖片

我們可以看到它匹配了任意單個(gè)字符外邓,但是并沒有匹配換行符(換行符就是每一行的最后一個(gè)隱藏的符號(hào))

幾個(gè)限定符

限定符在正則中也是非常非常重要的撤蚊,有哪些呢?

我們一一介紹

1损话、侦啸?

圖片

?的含義就是問號(hào)前面那個(gè)字符出現(xiàn)0或1次丧枪,在上圖的例子中use中沒有d所以出現(xiàn)了0次光涂,used有一個(gè)d所以出現(xiàn)了1次。

2拧烦、+

圖片

+的含義就是加號(hào)前面那個(gè)字符出現(xiàn)大于等于1次顶捷,在上圖的例子里use沒有d,所以沒有匹配到屎篱;但是used和usedddd它們兩個(gè)中的d都出現(xiàn)了大于等于1次服赎,所以能夠被匹配。

3交播、*

圖片

的含義就是星號(hào)前面那個(gè)字符出現(xiàn)大于等于0次*重虑,這個(gè)就很好理解了,這里就不多說了秦士。

[ ]

接下來我們來看看正則中又一個(gè)重要的元字符

[]

圖片
圖片
圖片
圖片

大家看了上面四張圖缺厉,估計(jì)對(duì)于[]就會(huì)有一定的認(rèn)識(shí)了,簡(jiǎn)而言之就是匹配方括號(hào)內(nèi)的任意字符隧土,其中0-9表示0到9之間提针,包括0和9的數(shù)字,其他的同理曹傀。

{ }

除了[]還有{}

大括號(hào)其實(shí)表示的是一個(gè)量詞辐脖,常用來限定一個(gè)或者一組字符可以重復(fù)出現(xiàn)的次數(shù)限寞,大家可以下面實(shí)例

圖片
圖片
圖片

首先第一張圖娃磺,{4}表示的是前面字符只能匹配出現(xiàn)4次的;

第二張圖默怨,{2,4}表示的是前面字符只能匹配至少出現(xiàn)2次幕庐,最多出現(xiàn)4次的久锥;

第三張圖{3,}表示前面字符只能匹配出現(xiàn)至少3次的。

|

或運(yùn)算符异剥,估計(jì)大家能猜到是什么意思

圖片

不多說了瑟由。

^和$

圖片

^ 用來檢查匹配的字符串是否在所匹配字符串的開頭

圖片

$ 用來檢查匹配的字符串是否在所匹配字符串的結(jié)尾

字符集

字符 描述
. 除換行符外的所有字符
\w 匹配所有字母數(shù)字,等同于 [a-zA-Z0-9_]
\W 匹配所有非字母數(shù)字冤寿,即符號(hào)歹苦,等同于:[^\w]
\d 匹配數(shù)字:[0-9]
\D 匹配非數(shù)字:[^\d]
\s 匹配所有空格字符绿鸣,等同于:[\t\n\f\r\p{Z}]
\S 匹配所有非空格字符:[^\s]
\f 匹配一個(gè)換頁符
\n 匹配一個(gè)換行符
\r 匹配一個(gè)回車符
\t 匹配一個(gè)制表符
\v 匹配一個(gè)垂直制表符
\p 匹配 CR/LF(等同于 \r\n),用來匹配 DOS 行終止符

貪婪匹配和惰性匹配

貪婪和惰性我們從字面意思就可以知道是啥意思

下面就是貪婪的寫法

圖片

下面就是惰性匹配的寫法

圖片

其實(shí)就是一個(gè)問號(hào)的差別暂氯,有問號(hào)的就是惰性的潮模,沒有問號(hào)就貪婪。

實(shí)戰(zhàn)案例

以上基本的一些正則知識(shí)都給大家介紹了痴施,下面給大家舉一些我們常用的一些正則實(shí)例擎厢。

爬取HTML標(biāo)簽中的內(nèi)容

<span>123asdasd</span>

很多時(shí)候我們想要去爬取一些HTML標(biāo)簽中的文字內(nèi)容,怎么爬取呢辣吃?

import re
a = '<span>123asdasd</span>'
res = re.findall(r'<span>(.*?)</span>', a)
print(res)

打印出來的結(jié)果:

['123asdasd']

我們還可以看

<a helf="www.baidu.com" title="百度">你好</a>

這里我們來提取title中的文字

import re
title = '<a helf="www.baidu.com" title="百度">你好</a>'
res = re.findall(r'title="(.*?)"', title)
print(res)

打印的結(jié)果:

['百度']

如果你覺得本文對(duì)你有所幫助动遭,給我來個(gè)點(diǎn)贊關(guān)注!

往期文章推薦:
245道Python面試真題神得!
200道Python數(shù)據(jù)分析習(xí)題+50個(gè)辦公自動(dòng)化案例厘惦!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市哩簿,隨后出現(xiàn)的幾起案子宵蕉,更是在濱河造成了極大的恐慌,老刑警劉巖节榜,帶你破解...
    沈念sama閱讀 206,214評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件羡玛,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡宗苍,警方通過查閱死者的電腦和手機(jī)稼稿,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,307評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來讳窟,“玉大人让歼,你說我怎么就攤上這事±龇龋” “怎么了谋右?”我有些...
    開封第一講書人閱讀 152,543評(píng)論 0 341
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)碌上。 經(jīng)常有香客問我倚评,道長(zhǎng),這世上最難降的妖魔是什么馏予? 我笑而不...
    開封第一講書人閱讀 55,221評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮盔性,結(jié)果婚禮上霞丧,老公的妹妹穿的比我還像新娘。我一直安慰自己冕香,他們只是感情好蛹尝,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,224評(píng)論 5 371
  • 文/花漫 我一把揭開白布后豫。 她就那樣靜靜地躺著,像睡著了一般突那。 火紅的嫁衣襯著肌膚如雪挫酿。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,007評(píng)論 1 284
  • 那天愕难,我揣著相機(jī)與錄音早龟,去河邊找鬼。 笑死猫缭,一個(gè)胖子當(dāng)著我的面吹牛葱弟,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播猜丹,決...
    沈念sama閱讀 38,313評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼芝加,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了射窒?” 一聲冷哼從身側(cè)響起藏杖,我...
    開封第一講書人閱讀 36,956評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎脉顿,沒想到半個(gè)月后制市,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,441評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡弊予,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,925評(píng)論 2 323
  • 正文 我和宋清朗相戀三年祥楣,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片汉柒。...
    茶點(diǎn)故事閱讀 38,018評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡误褪,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出碾褂,到底是詐尸還是另有隱情兽间,我是刑警寧澤,帶...
    沈念sama閱讀 33,685評(píng)論 4 322
  • 正文 年R本政府宣布正塌,位于F島的核電站嘀略,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏乓诽。R本人自食惡果不足惜帜羊,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,234評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望鸠天。 院中可真熱鬧讼育,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,240評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至痹籍,卻和暖如春呢铆,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背蹲缠。 一陣腳步聲響...
    開封第一講書人閱讀 31,464評(píng)論 1 261
  • 我被黑心中介騙來泰國(guó)打工棺克, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人吼砂。 一個(gè)月前我還...
    沈念sama閱讀 45,467評(píng)論 2 352
  • 正文 我出身青樓逆航,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親渔肩。 傳聞我的和親對(duì)象是個(gè)殘疾皇子因俐,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,762評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容