版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
Python爬蟲程序設(shè)計KC181.8正則表達式正則表達式是用來匹配與查找字符串的,從網(wǎng)上爬取數(shù)據(jù)自然或多或少會用到正則表達式。Python的正則表達式要先引入re模塊,正則表達式以r引導,例如:importrereg=r"\d+"m=re.search(reg,"abc123cd")print(m)其中r"\d+"正則表達式表示匹配連續(xù)的多個數(shù)值,search是re中的函數(shù),從"abc123cd"字符串中搜索連續(xù)的數(shù)值,得到"123",返回一個匹配對象,因此程序的結(jié)果如下:<_sre.SRE_Matchobject;span=(3,6),match='123'>從結(jié)果看出,在指定的字符串中找到了連續(xù)的數(shù)值,它們是"123",span(3,6)表示開始位置是3,結(jié)束位置是6,這正好是"123"在"abc123cd"中的位置。Python中關(guān)于正則表達式的規(guī)則比較多,下面將介紹主要的內(nèi)容,詳細內(nèi)容讀者可以參考相關(guān)資料。1、字符"\d"匹配0-9之間的一個數(shù)值。例如:importrereg=r"\d"m=re.search(reg,"abc123cd")print(m)結(jié)果找到了第一個數(shù)值"1":<_sre.SRE_Matchobject;span=(3,4),match='1'>2、字符"+"重復前面一個匹配字符一次或者多次。例如:importrereg=r"b\d+"m=re.search(reg,"a12b123c")print(m)結(jié)果找到了"b123":<_sre.SRE_Matchobject;span=(3,7),match='b123'>注意:r"b\d+"第一個字符要匹配"b",后面是連續(xù)的多個數(shù)字,因此是"b123",不是"a12"。3、字符"*"重復前面一個匹配字符零次或者多次。"*"與"+"類似,但有區(qū)別,例如:importrereg=r"ab+"m=re.search(reg,"acabc")print(m)reg=r"ab*"m=re.search(reg,"acabc")print(m)結(jié)果:<_sre.SRE_Matchobject;span=(2,4),match='ab'><_sre.SRE_Matchobject;span=(0,1),match='a'>4、字符"?"重復前面一個匹配字符零次或者一次。例如:importrereg=r"ab?"m=re.search(reg,"abbcabc")print(m)結(jié)果:<_sre.SRE_Matchobject;span=(0,2),match='ab'>匹配結(jié)果是"ab",其中b重復一次。5、字符"."代表任何一個字符,但是沒有特別聲明時不代表字符"\n"。例如:importres="xaxby"m=re.search(r"a.b",s)print(m)結(jié)果"."代表了字符"x"<_sre.SRE_Matchobject;span=(1,4),match='axb'>6、"|"代表把左右分成兩個部分。例如:importres="xaabababy"m=re.search(r"ab|ba",s)print(m)結(jié)果匹配"ab"或者"ba"都可以:<_sre.SRE_Matchobject;span=(2,4),match='ab'>7、特殊字符使用反斜線"\"引導,例如"\r"、"\n"、"\t"、"\\"分別表示回車、換行、制表符號與反斜線自己本身。例如:importrereg=r"a\nb?"m=re.search(reg,"ca\nbcabc")print(m)結(jié)果匹配"a\n\b":<_sre.SRE_Matchobject;span=(1,4),match='a\nb'>8、字符"\b"表示單詞結(jié)尾,單詞結(jié)尾包括各種空白字符或者字符串結(jié)尾。例如:importrereg=r"car\b"m=re.search(reg,"Thecarisblack")print(m)結(jié)果匹配"car",因為"car"后面是以個空格:<_sre.SRE_Matchobject;span=(4,7),match='car'>9、"[]"中的字符是任選擇一個,如果字符是ASCII碼中連續(xù)的一組,那么可以使用"-"符號連接,例如[0-9]表示0-9的其中一個數(shù)字,[A-Z]表示A-Z的其中一個大寫字符,[0-9A-Z]表示0-9的其中一個數(shù)字或者是A-Z的其中一個大寫字符。例如:importrereg=r"x[0-9]y"m=re.search(reg,"xyx2y")print(m)結(jié)果匹配"x2y":<_sre.SRE_Matchobject;span=(2,5),match='x2y'>10、"^"出現(xiàn)在[]的第一個字符位置,就代表取反,例如[^ab0-9]表示不是a、b,也不是0-9的數(shù)字。例如:importrereg=r"x[^ab0-9]y"m=re.search(reg,"xayx2yxcy")print(m)結(jié)果匹配"xcy":<_sre.SRE_Matchobject;span=(6,9),match='xcy'>
11、"\s"匹配任何空白字符,等價"[\r\n\x20\t\f\v]"。例如:importres="1aba\tbxy"m=re.search(r"a\sb",s)print(m)結(jié)果匹配"ab":<_sre.SRE_Matchobject;span=(1,4),match='ab'>
12、"\w"匹配包括下劃線子內(nèi)的單詞字符,等價于"[a-zA-Z0-9_]"。例如:importrereg=r"\w+"m=re.search(reg,"Pythoniseasy")print(m)結(jié)果匹配"Python":<_sre.SRE_Matchobject;span=(0,6),match='Python'>13、"^"匹配字符串的開頭位置。例如:importrereg=r"^ab"m=re.search(reg,"cabcab")print(m)結(jié)果:None沒有匹配到任何字符,因為"cabcab"中雖然有"ab",但不是"ab"開頭。14、"$"字符匹配字符串的結(jié)尾位置。例如:importrereg=r"ab$"m=re.search(reg,"abcab")print(m)匹配結(jié)果是最后一個"ab",而不是第一個"ab":<_sre.SRE_Matchobject;span=(3,5),match='ab'>15、使用括號(...)可以把(...)看成一個整體,經(jīng)常與"+"、"*"、"?"的連續(xù)使用,對(...)部分進行重復。例如:importrereg=r"(ab)+"m=re.search(reg,"ababcab")print(m)結(jié)果匹配"abab","+"對"ab"進行了重復:<_sre.SRE_Matchobject;span=(0,4),match='abab'>例:匹配找出英文句子中所有單詞我們可以使用正則表達式r"[A-Za-z]+\b"匹配單詞,它表示匹配由大小寫字母組成的連續(xù)多個字符,一般是一個單詞,之后"\b"表示單詞結(jié)尾。importres="Iamtestingsearchfunction"reg=r"[A-Za-z]+\b"m=re.search(reg,s)whilem!=None:start=m.start()end=m.end()print(s[start:en
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 雙十一設(shè)計引領(lǐng)消費
- 2024年遠程教育講師合同模板
- 外墻燈安裝合同(2篇)
- 大宗商品資產(chǎn)管理合同
- 2024年裝飾裝修工程監(jiān)理合同3篇
- 2024版?zhèn)}單質(zhì)權(quán)貸款合同3篇
- 凈水器租賃合同書
- 民間房屋買賣合同
- 15 女媧補天 說課稿 -2024-2025學年語文四年級上冊統(tǒng)編版
- 2025年度人工智能技術(shù)研發(fā)合同范本6篇
- 生活中的毒理學(衛(wèi)生毒理學)智慧樹知到期末考試答案章節(jié)答案2024年寧波大學
- 【真題】2023年南京市中考語文試卷(含答案解析)
- 醫(yī)用冰箱溫度登記表
- 日有所誦(二年級)
- 材料、設(shè)備進場驗收流程圖
- 兒童幼兒教育教學培訓卡通ppt課件
- 單肺通氣技術(shù)
- 一年級上冊數(shù)學(2003)
- 學生基本情況分析(通用11篇)
- 明天會更好歌詞
- 斯派克max操作手冊
評論
0/150
提交評論