版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第Python之re模塊案例詳解1、re.A(re.ASCII)
讓\w,\W,\b,\B,\d,\D,\s和\S執(zhí)行ASCII-只匹配完整的Unicode匹配代替。這僅對Unicode模式有意義,而對于字節(jié)模式則忽略。
2、re.I(re.IGNORECASE)
執(zhí)行不區(qū)分大小寫的匹配;類似的表達式也[A-Z]將匹配小寫字母。
3、re.L(re.LOCALE)
讓\w,\W,\b,\B和區(qū)分大小寫的匹配取決于當前的語言環(huán)境。該標志只能與字節(jié)模式一起使用。不建議使用此標志,因為語言環(huán)境機制非常不可靠,它一次只能處理一種“區(qū)域性”,并且僅適用于8位語言環(huán)境。默認情況下,Python3中已為Unicode(str)模式啟用了Unicode匹配,并且能夠處理不同的語言環(huán)境/語言。
4、re.M(re.MULTILINE)
指定時,模式字符'^'在字符串的開頭和每行的開頭(緊隨每個換行符之后)匹配;模式字符'$'在字符串的末尾和每行的末尾(緊接在每個換行符之前)匹配。默認情況下,'^'僅在字符串的開頭,字符串'$'的末尾和字符串末尾的換行符(如果有)之前立即匹配。
5、re.S(re.DOTALL)
使'.'特殊字符與任何字符都匹配,包括換行符;沒有此標志,'.'將匹配除換行符以外的任何內容。
(二)常用方法
1、pile(pattern,flags=0)
將正則表達式模式編譯為正則表達式對象,可使用match(),search()以及下面所述的其他方法將其用于匹配
prog=pile('\d{2}')#正則對象
prog.search('12abc')
_sre.SRE_Matchobject;span=(0,2),match='12'
prog.search('12abc').group()#通過調用group()方法得到匹配的字符串,如果字符串沒有匹配,則返回None。
prog.match('123abc')
_sre.SRE_Matchobject;span=(0,2),match='12'
prog.match('123abc').group()
2、re.search(pattern,string,flags=0)
掃描字符串以查找正則表達式模式產生匹配項的第一個位置,然后返回相應的match對象。None如果字符串中沒有位置與模式匹配,則返回;否則返回false。請注意,這與在字符串中的某個點找到零長度匹配不同。
#在這個字符串進行匹配,只會匹配一個對象re.search('\w+','abcde').group()
'abcde'
re.search('a','abcde').group()
3、re.match(pattern,string,flags=0)
如果字符串開頭的零個或多個字符與正則表達式模式匹配,則返回相應的匹配對象。None如果字符串與模式不匹配,則返回;否則返回false。請注意,這與零長度匹配不同。
#同search,不過在字符串開始處進行匹配,只會匹配一個對象
re.match('a','abcade').group()
re.match('\w+','abc123de').group()
'abc123de'
re.match('\D+','abc123de').group()#非數字
'abc'
4、re.fullmatch(pattern,string,flags=0)
如果整個字符串與正則表達式模式匹配,則返回相應的match對象。None如果字符串與模式不匹配,則返回;否則返回false。請注意,這與零長度匹配不同。
re.fullmatch('\w+','abcade').group()
'abcade'
re.fullmatch('abcade','abcade').group()
'abcade'
5、re.split(pattern,string,maxsplit=0,flags=0)
通過出現模式來拆分字符串。如果在pattern中使用了捕獲括號,那么模式中所有組的文本也將作為結果列表的一部分返回。如果maxsplit不為零,則最多會發(fā)生maxsplit分割,并將字符串的其余部分作為列表的最后一個元素返回。
re.split('[ab]','abcd')#先按'a'分割得到''和'bcd',在對''和'bcd'分別按'b'分割
['','','cd']
re.split(r'\W+','Words,words,words.')
['Words','words','words','']
re.split(r'(\W+)','Words,words,words.')
['Words',',','words',',','words','.','']
re.split(r'\W+','Words,words,words.',1)
['Words','words,words.']
re.split('[a-f]+','0a3B9',flags=re.IGNORECASE)
['0','3','9']
如果分隔符中有捕獲組,并且該匹配組在字符串的開頭匹配,則結果將從空字符串開始。字符串的末尾也是如此:
re.split(r'(\W+)','...words,words...')
['','...','words',',','words','...','']
6、re.findall(pattern,string,flags=0)
以string列表形式返回string中pattern的所有非重疊匹配項。從左到右掃描該字符串,并以找到的順序返回匹配項。如果該模式中存在一個或多個組,則返回一個組列表;否則,返回一個列表。如果模式包含多個組,則這將是一個元組列表。空匹配項包含在結果中。
re.findall('a','Thisisabeautifulplace!')
['a','a','a']
7、re.finditer(pattern,string,flags=0)
返回一個迭代器,該迭代器在string類型的RE模式的所有非重疊匹配中產生匹配對象。從左到右掃描該字符串,并以找到的順序返回匹配項。空匹配項包含在結果中。
re.finditer('[ab]','Thisisabeautifulplace!')
callable_iteratorobjectat0x0000000000DCDA90#迭代器對象
ret=re.finditer('[ab]','Thisisabeautifulplace!')
next(ret).group()#查看下一個匹配值
[i.group()foriinret]#查看剩下所有匹配的值
['b','a','a']
8、re.sub(pattern,repl,string,count=0,flags=0)
返回通過用替換repl替換字符串中最左邊的不重疊模式所獲得的字符串。如果找不到該模式,則返回的字符串不變。repl可以是字符串或函數;如果是字符串,則處理其中的任何反斜杠轉義。即,將其轉換為單個換行符,將其轉換為回車,依此類推。count參數表示將匹配到的內容進行替換的次數
re.sub('\d','S','abc12jh45li78',2)#將匹配到的數字替換成S,替換2個
'abcSSjh45li78'
re.sub('\d','S','abc12jh45li78')#將匹配到所有的數字替換成S
'abcSSjhSSliSS'
9、re.subn(pattern,repl,string,count=0,flags=0)
執(zhí)行與相同的操作sub(),但返回一個元組。(new_string,number_of_subs_made)
re.subn('\d','S','abc12jh45li78',3)
('abcSSjhS5li78',3)
10、re.escape(pattern)
escape中的所有字符圖案,除了ASCII字母,數字和'_'。如果要匹配可能包含正則表達式元字符的任意文字字符串,這將很有用。
re.escape('python.exe\n')
'python\\.exe\\\n'
11、search()與match()方法
Python提供了兩種基于正則表達式的原始操作:re.match()僅在字符串的開頭匹配,re.search()檢查匹配項,在字符串中的任何位置檢查匹配項(這是Perl的默認設置)。
re.match("c","abcdef")#Notmatch
re.search("c","abcdef")#match
_sre.SRE_Matchobject;span=(2,3),match='c'
以開頭的正則表達式'^'可用于search()限制字符串開頭的匹配項:
re.match("c","abcdef")#
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二項式定理知識點課件
- 2026年鐘山縣清塘鎮(zhèn)人民政府公開招聘備考題庫員備考題庫及一套參考答案詳解
- 醫(yī)院法律法規(guī)培訓課件
- 2025至2030中國土壤修復技術比較與項目實施案例研究報告
- 2025至2030中國腦機接口醫(yī)療應用倫理審查與臨床試驗規(guī)范研究
- 2025至2030中國人工智能芯片行業(yè)市場現狀技術突破及商業(yè)化應用前景分析研究報告
- iso質量環(huán)境安全貫標課件
- 2026年雄安未來產業(yè)技術研究院(事業(yè)單位)招聘44人備考題庫有答案詳解
- 2025至2030鈉離子電池產業(yè)化進程評估及儲能系統(tǒng)替代機會研究報告
- 2025至2030文化娛樂市場發(fā)展分析及前景趨勢與消費行為研究報告
- 2025年高中語文必修上冊《登泰山記》文言文對比閱讀訓練(含答案)
- 2025年金蝶AI蒼穹平臺新一代企業(yè)級AI平臺報告-
- 2025中國機械工業(yè)集團有限公司(國機集團)社會招聘19人筆試參考題庫附答案
- 淺析煤礦巷道快速掘進技術
- 成人留置導尿標準化護理與并發(fā)癥防控指南
- 2025年勞動關系協(xié)調師綜合評審試卷及答案
- CIM城市信息模型技術創(chuàng)新中心建設實施方案
- 班級互動小游戲-課件共30張課件-小學生主題班會版
- 2025至2030全球及中國智慧機場建設行業(yè)發(fā)展趨勢分析與未來投資戰(zhàn)略咨詢研究報告
- 2025年二級造價師《土建工程實務》真題卷(附解析)
- 智慧農業(yè)管理中的信息安全對策
評論
0/150
提交評論