RE模塊字符串操作

RE模塊字符串操作

  • 使用match方法從開始處匹配字符串,if sucess return Match objection else return None

re.match(pattern,string,flags)

  • 使用search方法在整個字符串中匹配子字符串,if sucess return Match objection else return None

re.search(pattern,string,flags)

  • 使用findall方法匹配所有符合expression的字符串,if succss return Match-list else return None-list

re.findall(pattern,string,flags)

參數(shù)說明

1.pattern:匹配模板

2.string:匹配字符串

3.flags:可選參數(shù),用于控制匹配方式,如是否區(qū)分大小寫

  • 使用sub方法替換字符串

re.sub(pattern,repl,string,count,flag)

參數(shù)說明

1.pattern:匹配模板

2.repl:表示替換成的字符串

3.string:表示被替換的字符串

3.count:表示替換最大次數(shù)

  • 使用split方法分割字符串

re.split(pattern,string,[maxsplit],[flags])

參數(shù)說明

1.string:分割字符串

2.maxplit:最大分割次數(shù)

import re
pattern = r'mr_\w+'
string = 'MR_one mr_two'
match = re.match(pattern,string,re.I)
print(match)
print(match.string)   #提取要匹配的字符串
print(match.start())    #匹配起始位置
print(match.end())      #匹配結(jié)尾位置
print(match.span())     #匹配起始結(jié)尾位置元組
print(match.group())   #匹配的數(shù)據(jù)
<_sre.SRE_Match object; span=(0, 6), match='MR_one'>
MR_one mr_two
0
6
(0, 6)
MR_one
string = '321  Mr_luo'
search = re.search(pattern,string,re.I)
print(search.string)
print(search.group())
321  Mr_luo
Mr_luo
string = 'dsadsa 123 dsad 123 dsa 123 dsa 123'
pattern = '[0-9]{1,3}'
findall = re.findall(pattern,string)
print(findall)
['123', '123', '123', '123']
pattern = '[0-9]{1,3}'
repl = 'SSS'
print('替換之前:',string)
sub = re.sub(pattern,repl,string)
print('替換之后:',sub)
替換之前: dsadsa 123 dsad 123 dsa 123 dsa 123
替換之后: dsadsa SSS dsad SSS dsa SSS dsa SSS
print('分割之前:',sub)
pattern = '[a|s]'
split = re.split(pattern,sub,0,re.I)
print('分割之后:',split)
分割之前: dsadsa SSS dsad SSS dsa SSS dsa SSS
分割之后: ['d', '', 'd', '', ' ', '', '', ' d', '', 'd ', '', '', ' d', '', ' ', '', '', ' d', '', ' ', '', '', '']
# 匹配IP地址
import re
pattern1 = r'[1-9]{1,3}(\.[0-9]{1,3}){3}'
pattern2 = r'[1-9]{1,3}(\.[0-9]{1,3}){2}'
pattern3 = r'([1-9]{1,3}(\.[0-9]{1,3}){2})'
pattern4 = r'([1-9]{1,3}(\.[0-9]{1,3}){3})'

string = '193.168.1.1 192.168.1.66'
findall1 = re.findall(pattern1,string)
print(findall1)
findall2 = re.findall(pattern2,string)
print(findall2)
findall3 = re.findall(pattern3,string)
print(findall3)
findall4 = re.findall(pattern4,string)
print(findall4)
['.1', '.66']
['.1', '.1']
[('193.168.1', '.1'), ('192.168.1', '.1')]
[('193.168.1.1', '.1'), ('192.168.1.66', '.66')]
for item in findall4:
    print(item[0])
193.168.1.1
192.168.1.66

由上面的例子可以看到當分組里面套了分組的時候程序是如何運行的
pattern3 = r'([1-9]{1,3}(.[0-9]{1,3}){2})'
pattern4 = r'([1-9]{1,3}(.[0-9]{1,3}){3})'
如這兩個表達式在匹配的時候先忽略內(nèi)層括號,考慮最外面一層()進行匹配,然后在匹配內(nèi)層括號內(nèi)的,然后把內(nèi)層與外層的匹配值合并成一組
(.[0-9]{1,3}){2})
(.[0-9]{1,3}){3})
這兩個表達式的意思是重復(fù)匹配表達式(.[0-9]{1,3}),2报腔、3次且取最后一次匹配值

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末妒峦,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌坑傅,老刑警劉巖搭综,帶你破解...
    沈念sama閱讀 219,110評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異皱炉,居然都是意外死亡,警方通過查閱死者的電腦和手機狮鸭,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,443評論 3 395
  • 文/潘曉璐 我一進店門合搅,熙熙樓的掌柜王于貴愁眉苦臉地迎上來多搀,“玉大人,你說我怎么就攤上這事灾部⌒镏纾” “怎么了?”我有些...
    開封第一講書人閱讀 165,474評論 0 356
  • 文/不壞的土叔 我叫張陵梳猪,是天一觀的道長麻削。 經(jīng)常有香客問我,道長春弥,這世上最難降的妖魔是什么呛哟? 我笑而不...
    開封第一講書人閱讀 58,881評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮匿沛,結(jié)果婚禮上扫责,老公的妹妹穿的比我還像新娘。我一直安慰自己逃呼,他們只是感情好鳖孤,可當我...
    茶點故事閱讀 67,902評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著抡笼,像睡著了一般苏揣。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上推姻,一...
    開封第一講書人閱讀 51,698評論 1 305
  • 那天平匈,我揣著相機與錄音,去河邊找鬼藏古。 笑死增炭,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的拧晕。 我是一名探鬼主播隙姿,決...
    沈念sama閱讀 40,418評論 3 419
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼厂捞!你這毒婦竟也來了输玷?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,332評論 0 276
  • 序言:老撾萬榮一對情侶失蹤蔫敲,失蹤者是張志新(化名)和其女友劉穎饲嗽,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體奈嘿,經(jīng)...
    沈念sama閱讀 45,796評論 1 316
  • 正文 獨居荒郊野嶺守林人離奇死亡貌虾,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,968評論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了裙犹。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片尽狠。...
    茶點故事閱讀 40,110評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡衔憨,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出袄膏,到底是詐尸還是另有隱情践图,我是刑警寧澤,帶...
    沈念sama閱讀 35,792評論 5 346
  • 正文 年R本政府宣布沉馆,位于F島的核電站码党,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏斥黑。R本人自食惡果不足惜揖盘,卻給世界環(huán)境...
    茶點故事閱讀 41,455評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望锌奴。 院中可真熱鬧兽狭,春花似錦、人聲如沸鹿蜀。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,003評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽茴恰。三九已至颠焦,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間琐簇,已是汗流浹背蒸健。 一陣腳步聲響...
    開封第一講書人閱讀 33,130評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留婉商,地道東北人。 一個月前我還...
    沈念sama閱讀 48,348評論 3 373
  • 正文 我出身青樓渣叛,卻偏偏與公主長得像丈秩,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子淳衙,可洞房花燭夜當晚...
    茶點故事閱讀 45,047評論 2 355

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

  • re模塊手冊 本模塊提供了和Perl里的正則表達式類似的功能蘑秽,不關(guān)是正則表達式本身還是被搜索的字符串,都可以...
    喜歡吃栗子閱讀 4,010評論 0 13
  • 類 !/usr/bin/python -- coding: UTF-8 -- class Employee:'所有...
    SkTj閱讀 957評論 0 0
  • 在前面我們已經(jīng)搞定了怎樣獲取頁面的內(nèi)容箫攀,不過還差一步肠牲,這么多雜亂的代碼夾雜文字我們怎樣把它提取出來整理呢?下面就開...
    AromaMuzi閱讀 311評論 0 0
  • Python中的正則表達式(re) import rere.match #從開始位置開始匹配靴跛,如果開頭沒有則無re...
    BigJeffWang閱讀 7,082評論 0 99
  • re模塊 開始使用re Python通過re模塊提供對正則表達式的支持缀雳。使用re的一般步驟是先將正則表達式的字符串...
    Alex陌閱讀 1,292評論 0 0