如何理解Python中的正則表達式(1)
今天小編要跟大家分享的文章是如何理解Python中的正則表達式(1)?可以毫不夸張的講,沒有正則表達式,就沒有搜索引擎。估計不少人還是云里霧里,OK,今天就帶大家來學習一下,Python入門新手和正在Python學習的小伙伴快來看一看吧,希望能夠?qū)Υ蠹矣兴鶐椭?!
正則表達式是Python基礎(chǔ)學習中很重要的一部分內(nèi)容,今天我們就開始學習Python中正則表達式的相關(guān)內(nèi)容,今天我們先來了解什么是正則表達式、正則表達式有什么作用等內(nèi)容。

正則表達式誕生的緣由:
在編程處理文本的過程中,經(jīng)常會需要按照某種規(guī)則去查找一些特定的字符串。比如知道一個網(wǎng)頁上的圖片都是叫做'image/8554278135.jpg'之類的名字,只是那串數(shù)字不一樣;又或者在一堆人員電子檔案中,你要把他們的電話號碼全部找出來,整理成通訊錄。諸如此類工作,如果手工去做,當量大的時候那簡直就是悲劇。但你知道這些字符信息有一定的規(guī)律,可不可以利用這些規(guī)律,讓程序自動來做這些無聊的事情?答案是肯定的。這時候,你就需要一種描述這些規(guī)律的方法,正則表達式就是干這事的。
正則表達式就是記錄文本規(guī)則的代碼。
所以正則表達式并不是Python中特有的功能,它是一種通用的方法。Python中的正則表達式庫,所做的事情是利用正則表達式來搜索文本。要使用它,你必須會自己用正則表達式來描述文本規(guī)則。之前多次有同學表示查找文本的事情經(jīng)常會遇上,希望能介紹一下正則表達式。既然如此,我們就從正則表達式的基本規(guī)則開始說起。
1.首先說一種最簡單的正則表達式,它沒有特殊的符號,只有基本的字母或數(shù)字。它滿足的匹配規(guī)則就是完全匹配。
例如:有個正則表達式是“hi”,那么它就可以匹配出文本中所有含有hi的字符。
來看如下的一段文字:
Hi, I am Shirley Hilton. I am his wife.
如果我們用“hi”這個正則表達式去匹配這段文字,將會得到兩個結(jié)果。因為是完全匹配,所以每個結(jié)果都是“hi”。這兩個“hi”分別來自“Shirley”和“his”。默認情況下正則表達式是嚴格區(qū)分大小寫的,所以“Hi”和“Hilton”中的“Hi”被忽略了。
為了驗證正則表達式匹配的結(jié)果,你可以用以下這段代碼做實驗:
import re text = "Hi, I am Shirley Hilton. I am his wife." m = re.findall(r"hi", text) if m: print m else: print 'not match'
暫時先不解釋這其中代碼的具體含義,你只要去更改text和findall中的字符串,就可以用它來檢測正則表達式的實際效果。
2.如果我們只想找到“hi”這個單詞,而不把包含它的單詞也算在內(nèi),那就可以使用“\bhi\b”這個正則表達式。
在以前的字符串處理中,我們已經(jīng)見過類似“\n”這種特殊字符。在正則表達式中,這種字符更多,以后足以讓你眼花繚亂。
“\b”在正則表達式中表示單詞的開頭或結(jié)尾,空格、標點、換行都算是單詞的分割。而“\b”自身又不會匹配任何字符,它代表的只是一個位置。所以單詞前后的空格標點之類不會出現(xiàn)在結(jié)果里。
在前面那個例子里,“\bhi\b”匹配不到任何結(jié)果。但“\bhi”的話就可以匹配到1個“hi”,出自“his”。用這種方法,你可以找出一段話中所有單詞“Hi”,想一下要怎么寫。
3.最后再說一下[]這個符號。
在正則表達式中,[]表示滿足括號中任一字符。比如“[hi]”,它就不是匹配“hi”了,而是匹配“h”或者“i”。
在前面例子中,如果把正則表達式改為“[Hh]i”,就可以既匹配“Hi”,又匹配“hi”了。
恭喜您在Python的道路上又堅持了一天,今天我們算是初步的認識了一下Python中的正則表達式,下一講我們來了解更多內(nèi)容。
以上就是小編今天為大家分享的關(guān)于如何理解Python中的正則表達式(1)的文章,希望本篇文章能夠?qū)φ?Python學習?和從事Python相關(guān)工作的小伙伴們有所幫助,想要了解更多相關(guān)知識記得關(guān)注馬哥教育官網(wǎng),每天都會有大量優(yōu)質(zhì)內(nèi)容與大家分享!免責聲明:內(nèi)容和圖片源自網(wǎng)絡(luò),版權(quán)歸原作者所有,如有侵犯您的原創(chuàng)版權(quán)請告知,我們將盡快刪除相關(guān)內(nèi)容。