day15總結(jié)

一垦梆、正則表達(dá)式符號(hào)

正則表達(dá)式:
字符串查找淹朋、匹配施逾、切割(python對(duì)正則表達(dá)式的支持:提供了re模塊(python內(nèi)置模塊),包含字符串匹配、查找呈野、切割等相關(guān)方法)

fullmatch(正則表達(dá)式, 字符串):用正則表達(dá)式來和字符串進(jìn)行匹配低矮,看是否能夠匹配成功

注意:正則表達(dá)式的字符串,前面一般要加r來阻止轉(zhuǎn)義被冒。
因?yàn)檎齽t表達(dá)式的符號(hào)中有很多帶''的符號(hào)商佛,其功能不是轉(zhuǎn)義,而是表示特殊的意義

import re
#一系列的符號(hào)來組成的姆打,有自己的語法規(guī)范良姆,符號(hào)正則規(guī)范的字符串
#re.fullmatch(),完全匹配,從第一個(gè)字符開始幔戏,一直匹配

#2.\w 數(shù)字字母下劃線

#3.\s匹配一個(gè)空白字符(空格玛追、換行、制表符)

re_str='a\sb'
print(re.fullmatch(re_str,'a\nb'))

#\d匹配一個(gè)數(shù)字字符(1-9)
re_str='\d\d\d'
print(re.fullmatch(re_str,'123'))

#\b邊界檢測(cè)(字符串開頭和結(jié)束,單詞邊界)
re_str='how,are,you'
print(re.match(r'\b...\b.a',re_str))

#^(檢測(cè)以^The開頭的字符串)
re_str='Theb  kjjlj'
print(re.findall(r'The',re_str))

#$檢測(cè)字符串以什么結(jié)束
re_str='abc$'
print(re.findall(re_str,'adddfggggg  abc'))

# \W 匹配非數(shù)字字母下劃線
re_str=r'\W\w'
print(re.fullmatch(re_str,'%k'))

#\S 匹配非空白字符
re_str=r'\S\d'
print(re.fullmatch(re_str,'r7'))

# \D 匹配非數(shù)字
re_str='\D\w'
print(re.fullmatch(re_str,'f3'))

#\B檢測(cè)非邊界
re_str='\Babc'
print(re.findall(re_str,'dabccfff'))

二闲延、正則表達(dá)式中的符號(hào)組合

import re

"""1.匹配[]中一個(gè)字符痊剖,前三位是abc,第四位是字符1或者字符a"""
re_str=r'abd[1a]'
print(re.fullmatch(re_str,'abda'))

re_str=r'[\d]abc'
print(re.fullmatch(re_str,'1abc'))

"""2.[^]匹配不在中括號(hào)中的任意字符"""
re_str='ddd[^\da]'
print(re.fullmatch(re_str,'dddj'))

# [0-9]:匹配0,1,2,3.垒玲。陆馁。。9中任一字符
# [1-8]匹配1,2合愈,3,4.叮贩。击狮。8
# [a-z]匹配任意一個(gè)小寫字母
# [a-zA-Z]:匹配的是任意字母
print(re.fullmatch(r'[a-z]','f'))


"""3.*匹配0次或者多次數(shù)字字符,必須全是數(shù)字益老,不可摻雜其他"""
re_str=r'\d*abc'
print(re.fullmatch(re_str,'020498897abc'))


print(re.fullmatch(r'\d*','33'))
# re_str=r'\d\d*'
# re_str=r'[0-9][0-9]*'


re_str=r'[_a-zA-Z]\w*'

print(re.fullmatch(re_str,'ad_c'))

#5.?出現(xiàn)0次或者1次
re_str=r'[a-z]?123'

re_str=r'[+]?[1-9][0-9]*'
print(re.fullmatch(re_str,'4400'))

# {N}匹配N次
# {N,}
re_str=r'\d{3,}.*'
# {M,N}
'[\da-zA-Z]*{5,11}'

#分支|,或者的意思
re_str=r'\d{3}|[a-z]{3}'
print(re.fullmatch(re_str,'123'))

# ()匹配的時(shí)候是分組捺萌,讓括號(hào)里面的正則條件變成整體
re_str=r'(abd){3}'
re_str=r'abc{3}'

"""=======以下了解======="""
# 10.*档冬?重復(fù)任意次,盡量少重復(fù)

三桃纯、特殊轉(zhuǎn)義字符

1.特殊符號(hào)轉(zhuǎn)義
正則中:.\ [] {} () * + ? ^ $ | 這些字符有特殊意義酷誓,所有在正則表達(dá)式中
如果想單純表達(dá)這些字符,需要在前面加''
在括號(hào)中 - 號(hào)可能是特殊的符號(hào)

注意:
1 - [] ^ \在中括號(hào)中可能是特殊符號(hào)要加
2 . {} () * + ? $在中括號(hào)中可以不用加,來表示字符

import re
re_str=r'\d+\.\d+'
print(re.fullmatch(re_str,'12.13'))

re_str=r'\d[2\-5]\d'
print(re.fullmatch(re_str,'1-3'))

re_str=r'([1-9][a-z]{2})n\1'
print(re.fullmatch(re_str,'8hhn8hh'))

re_str=r'([1-9][a-z]{2})n(\d)\1\2'
print(re.fullmatch(re_str,'9hjn89hj8'))

四态坦、complie

1.complie(正則字符串)呛牲,將正則表達(dá)式字符串轉(zhuǎn)成正則表達(dá)式對(duì)象
# 將轉(zhuǎn)換成正則表達(dá)式對(duì)象后,可以通過對(duì)象調(diào)用相關(guān)方法
re_obct=re.compile(r'\w{6,12}')
print(re_obct.fullmatch('ahkdjk'))
print(re.fullmatch(r'\w{6,12}','ahkdjk'))

# 2.fullmatch(正則表達(dá)式驮配,字符串)完全匹配,從字符串開頭匹配到結(jié)尾
# 返回值是匹配對(duì)象
match=re.fullmatch('\w{3}','h3s')
print(match)

# a.獲取匹配到的結(jié)果
print(match.group())

# b.獲取匹配到的范圍
print(match.span())

# c.獲取匹配到的開始和結(jié)束下標(biāo)
print(match.start(),match.end())

# d.獲取匹配到的字符串(原字符串)
print(match.string)
# 應(yīng)用:判斷一個(gè)字符串是否是某種字符串

作業(yè):

1 獲取字符串中:
a.所有的正整數(shù)
b.所有的負(fù)整數(shù)
c.所有的浮點(diǎn)數(shù)
d.所有的非負(fù)浮點(diǎn)數(shù)

import re
re_str=r'[+]?\d+'
print(re.findall(re_str,'1aaa2bbb3ccc4'))

re_str=r'[-]?\d+'
print(re.findall(re_str,'-1aaa-2bbb-3ccc-4'))

re_str=r'[-]?\d+\.\d+'
print(re.findall(re_str,'-1.1aaa-2.2bbb3ccc4'))

re_str=r'\d+\.\d+'
print(re.findall(re_str,'1.1aaa2.2bbb3ccc4'))
結(jié)果顯示:
['1', '2', '3', '4']
['-1', '-2', '-3', '-4']
['-1.1', '-2.2']
['1.1', '2.2']

不定項(xiàng)選擇題

  1. 能夠完全匹配字符串“(010)-62661617”和字符串“01062661617”的正則表達(dá)式包括(a b )

A. “(?\d{3})?-?\d{8}”
B. “[0-9()-]+”
C. “[0-9(-)]\d
D. “[(]?\d[)-]\d*”

  1. 能夠完全匹配字符串“c:\rapidminer\lib\plugs”的正則表達(dá)式包括(bc )
    A. “c:\rapidminer\lib\plugs”
    B. “c:\rapidminer\lib\plugs”
    C. “(?i)C:\RapidMiner\Lib\Plugs” ?i:將后面的內(nèi)容的大寫變成小寫
    D. “(?s)C:\RapidMiner\Lib\Plugs” ?s:?jiǎn)涡衅ヅ?/li>
  2. 能夠完全匹配字符串“back”和“back-end”的正則表達(dá)式包括( b d)
    短路操作:前面的為真了着茸,就不會(huì)再執(zhí)行后邊的操作
    A. “\w{4}-\w{3}|\w{4}” B. “\w{4}|\w{4}-\w{3}”
    C. “\S+-\S+|\S+” D. “\w\b-\b\w|\w*”
  3. 能夠完全匹配字符串“go go”和“kitty kitty”壮锻,但不能完全匹配“go kitty”的正則表達(dá)式包括(ab )
    :\1就是重復(fù)前面第一個(gè)()/組合里面的內(nèi)容
    :\2就是重復(fù)前面第二個(gè)()/組合里面的內(nèi)容
    A. “\b(\w+)\b\s+\1\b”
    B. “\w{2,5}\s*\1”
    C. “(\S+) \s+\1”
    D. “(\S{2,5})\s{1,}\1”
  4. 能夠在字符串中匹配“aab”,而不能匹配“aaab”和“aaaab”的正則表達(dá)式包括( bc )
    A. “a*?b”
    B. “a{,2}b”
    C. “aa??b”
    D. “aaa??b”

三.觀察下面雙引號(hào)內(nèi)的文本”中文名 貝拉克·侯賽因·奧巴馬 外文名 Barack Hussein Obama II 別 名 歐巴馬 國(guó) 籍美國(guó) 民 族 德裔族 出生地 美國(guó)夏威夷州檀香山 出生日期 1961年8月4日 職 業(yè)政治家涮阔、律師猜绣、總統(tǒng) 畢業(yè)院校哥倫比亞大學(xué),哈佛大學(xué) 信 仰新教 主要成就 1996年伊利諾伊州參議員 主要成就美國(guó)第56屆敬特、57屆總統(tǒng) 2009年諾貝爾和平獎(jiǎng)獲得者 時(shí)代周刊年度風(fēng)云人物2008掰邢、2011 任期內(nèi)清除本·拉登 代表作品 《我相信變革》《我父親的夢(mèng)想》《無畏的希望》 所屬政黨美國(guó)民主黨 血 型 AB型 學(xué) 院西方學(xué)院 妻 子米歇爾·拉沃恩·奧巴馬 性 別 男”


re_str1=r'中文名\s+(\S+)\s+'
result1=re.findall(re_str1,str1)
print(result1)
result1=re.sub(r'[^\d]','$1',str(result1))
print(result1)


re_str2=r'[a-zA-Z]* [a-zA-Z]* [a-zA-Z]* II'
result2=re.findall(re_str2,str1)
print(result2)
result2=re.sub(r'[a-zA-Z]','$1',str(result2))
print(result2)

re_str3=r'\d*年\d月\d日'
result3=re.findall(re_str3,str1)
result3=re.sub(r'\d*','$1',str(result3))
print(result3)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市伟阔,隨后出現(xiàn)的幾起案子辣之,更是在濱河造成了極大的恐慌,老刑警劉巖皱炉,帶你破解...
    沈念sama閱讀 222,183評(píng)論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件怀估,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡多搀,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,850評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門灾部,熙熙樓的掌柜王于貴愁眉苦臉地迎上來康铭,“玉大人,你說我怎么就攤上這事赌髓〈犹伲” “怎么了催跪?”我有些...
    開封第一講書人閱讀 168,766評(píng)論 0 361
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)呛哟。 經(jīng)常有香客問我叠荠,道長(zhǎng),這世上最難降的妖魔是什么扫责? 我笑而不...
    開封第一講書人閱讀 59,854評(píng)論 1 299
  • 正文 為了忘掉前任榛鼎,我火速辦了婚禮,結(jié)果婚禮上鳖孤,老公的妹妹穿的比我還像新娘者娱。我一直安慰自己,他們只是感情好苏揣,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,871評(píng)論 6 398
  • 文/花漫 我一把揭開白布黄鳍。 她就那樣靜靜地躺著,像睡著了一般平匈。 火紅的嫁衣襯著肌膚如雪框沟。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,457評(píng)論 1 311
  • 那天增炭,我揣著相機(jī)與錄音忍燥,去河邊找鬼。 笑死隙姿,一個(gè)胖子當(dāng)著我的面吹牛梅垄,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播输玷,決...
    沈念sama閱讀 40,999評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼欲鹏!你這毒婦竟也來了机久?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,914評(píng)論 0 277
  • 序言:老撾萬榮一對(duì)情侶失蹤赔嚎,失蹤者是張志新(化名)和其女友劉穎吞加,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體尽狠,經(jīng)...
    沈念sama閱讀 46,465評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡衔憨,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,543評(píng)論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了袄膏。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片践图。...
    茶點(diǎn)故事閱讀 40,675評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖沉馆,靈堂內(nèi)的尸體忽然破棺而出码党,到底是詐尸還是另有隱情德崭,我是刑警寧澤,帶...
    沈念sama閱讀 36,354評(píng)論 5 351
  • 正文 年R本政府宣布揖盘,位于F島的核電站眉厨,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏兽狭。R本人自食惡果不足惜憾股,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,029評(píng)論 3 335
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望箕慧。 院中可真熱鬧服球,春花似錦、人聲如沸颠焦。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,514評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽伐庭。三九已至粉渠,卻和暖如春圾另,著一層夾襖步出監(jiān)牢的瞬間霸株,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,616評(píng)論 1 274
  • 我被黑心中介騙來泰國(guó)打工盯捌, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人蘑秽。 一個(gè)月前我還...
    沈念sama閱讀 49,091評(píng)論 3 378
  • 正文 我出身青樓饺著,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親肠牲。 傳聞我的和親對(duì)象是個(gè)殘疾皇子幼衰,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,685評(píng)論 2 360

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