初識Python正則表達式

Python自帶的re模塊提供了對正則表達式的支持消返。

1.Pythonre模塊中的一些元字符及其表示的意義
python 正則表達式元字符

幾點說明:
(1)python正則匹配模式默認采用貪婪匹配载弄,即匹配越多越好。

In [17]: import re
In [18]: s='abbbbc'
In [20]: re.match('ab*',s)
Out[20]: <_sre.SRE_Match object; span=(0, 5), match='abbbb'>
In [21]: re.match('ab?',s)
Out[21]: <_sre.SRE_Match object; span=(0, 2), match='ab'>
In [22]: re.match('ab*?',s)    #特殊例子
Out[22]: <_sre.SRE_Match object; span=(0, 1), match='a'>

(2)轉(zhuǎn)義字符''用來關(guān)閉元字符的特殊意義撵颊,而在python正則表達式中r'rawstring'同樣可以關(guān)閉元字符特殊意義宇攻,使其僅作為一個字符。

In [29]: print('\\')
\
In [30]: print(r'\\')
\\
In [31]: print('\\d')
\d
In [32]: print(r'\d')
\d
2.Python re模塊常用方法
re.complile(pattern)    #編寫正則匹配模式
re.match(pattern, text)        # pattern為正則表達模式倡勇,text為要查找的字符串逞刷,會返回一個match對象,從頭匹配妻熊,開頭沒有則返回None,
                                 可用re.match(pattern, text).group()方法取出匹配到的對象
re.search(pattern, text)       # 只要在text中找到了pattern就返回夸浅,只返回第一個匹配到的pattern的位置
re.findall(pattern, text)      # 將能匹配到的以list的方式全部返回
re.finditer()                 # 返回一個包含了所有的匹配對象的迭代器
                               # 迭代器中的每一個迭代對象都有span(),start(),end()方法,可以返回匹配結(jié)果的位置
re.split(pattern, text)        # 按照pattern匹配扔役,并且以匹配到的字符為分隔符切割text帆喇,返回一個切割后的list
re.sub(pattern, s, text)       # 替換,將pattern匹配到的字符替換為s
3. 匹配對象的操作方法
group() 返回正則表達式匹配到的字符串
start() 返回匹配的起始位置
end()   返回匹配的結(jié)束位置
span()  返回一個包含匹配的起始位置和結(jié)束位置的元組(start, end)

4. 重復匹配一個字符串多次

string = 'asdasdasdasdasdasdasddasfdhgasghsd'
print(re.findall(r'((?:asd)+)', string))

# 解釋下
# (?:asd)+ 是正則的一種不存分組的語法, 它具有2個用途, 將`asd`看成一個樣式整體, 所以當我們用+時, 就能代表多個asd
# () 最外層的括號就是將匹配的結(jié)果存入分組, 與上面不同的就是, 少了`?:`, 因為沒有這個, 所以它能存到分組
# 所以整體的結(jié)果就是: 將多個asd匹配, 并存入分組, 然后在re.findall的結(jié)果就能看到了
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末亿胸,一起剝皮案震驚了整個濱河市番枚,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌损敷,老刑警劉巖葫笼,帶你破解...
    沈念sama閱讀 217,084評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異拗馒,居然都是意外死亡路星,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,623評論 3 392
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來洋丐,“玉大人呈昔,你說我怎么就攤上這事∮丫” “怎么了堤尾?”我有些...
    開封第一講書人閱讀 163,450評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長迁客。 經(jīng)常有香客問我郭宝,道長,這世上最難降的妖魔是什么掷漱? 我笑而不...
    開封第一講書人閱讀 58,322評論 1 293
  • 正文 為了忘掉前任粘室,我火速辦了婚禮,結(jié)果婚禮上卜范,老公的妹妹穿的比我還像新娘衔统。我一直安慰自己,他們只是感情好海雪,可當我...
    茶點故事閱讀 67,370評論 6 390
  • 文/花漫 我一把揭開白布锦爵。 她就那樣靜靜地躺著,像睡著了一般奥裸。 火紅的嫁衣襯著肌膚如雪险掀。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,274評論 1 300
  • 那天刺彩,我揣著相機與錄音迷郑,去河邊找鬼。 笑死创倔,一個胖子當著我的面吹牛嗡害,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播畦攘,決...
    沈念sama閱讀 40,126評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼霸妹,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了知押?” 一聲冷哼從身側(cè)響起叹螟,我...
    開封第一講書人閱讀 38,980評論 0 275
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎台盯,沒想到半個月后罢绽,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,414評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡静盅,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,599評論 3 334
  • 正文 我和宋清朗相戀三年良价,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,773評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡明垢,死狀恐怖蚣常,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情痊银,我是刑警寧澤抵蚊,帶...
    沈念sama閱讀 35,470評論 5 344
  • 正文 年R本政府宣布,位于F島的核電站溯革,受9級特大地震影響贞绳,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜鬓照,卻給世界環(huán)境...
    茶點故事閱讀 41,080評論 3 327
  • 文/蒙蒙 一熔酷、第九天 我趴在偏房一處隱蔽的房頂上張望孤紧。 院中可真熱鬧豺裆,春花似錦、人聲如沸号显。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,713評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽押蚤。三九已至蔑歌,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間揽碘,已是汗流浹背次屠。 一陣腳步聲響...
    開封第一講書人閱讀 32,852評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留雳刺,地道東北人劫灶。 一個月前我還...
    沈念sama閱讀 47,865評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像掖桦,于是被迫代替她去往敵國和親本昏。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,689評論 2 354

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

  • re模塊手冊 本模塊提供了和Perl里的正則表達式類似的功能枪汪,不關(guān)是正則表達式本身還是被搜索的字符串涌穆,都可以...
    喜歡吃栗子閱讀 4,003評論 0 13
  • 概述 正則表達式是一個特殊的字符序列,它能幫助你方便的檢查一個字符串是否與某種模式匹配雀久。 Python 自1....
    MiracleJQ閱讀 389評論 0 0
  • 正則表達式有很多流派宿稀,也有很多的特性,不同的語言支持度也是不一樣的赖捌。本篇文章是寫Python中的正則表達式的用法的...
    Moscow1147閱讀 1,097評論 0 0
  • 正則表達式是一個特殊的字符序列祝沸,它能幫助你方便的檢查一個字符串是否與某種模式匹配。 Python 自1.5版本起增...
    chen_000閱讀 824評論 0 1
  • 正則表達式是一個特殊的字符序列,它能幫助你方便的檢查一個字符串是否與某種模式匹配奋隶。 Python 自1.5版本起增...
    不浪漫的浪漫_ea03閱讀 215評論 0 0