正则表达式_月隐学python第20课
目錄
1.為什么使?正則表達(dá)式
2.正則表達(dá)式的組成
3.正則常??法
3.1? re.match()?
3.2? re.search()?
3.3? re.findall()?
3.4? re.split?
3.5? re.sub和re.subn
3.6? re.group()和re.groups()
3.7? compile
4.練習(xí)
正則表達(dá)式
正則表達(dá)式是對(duì)字符串操作的?種邏輯公式,就是?事先定義好的?些特定字符、及這些特定字符的組合,組成?個(gè)“規(guī)則字符串”,這個(gè)“規(guī)則字符串”?來表達(dá)對(duì)字符串的?種過濾邏輯。
- 需要引?內(nèi)置模塊re
- 缺點(diǎn):效率低下,能?字符串?法完成盡量使?字符串的?法
- 優(yōu)點(diǎn):編碼簡(jiǎn)單
1.為什么使?正則表達(dá)式
使?場(chǎng)景
- 敏感詞過濾
- ?機(jī)、郵箱等驗(yàn)證
- 爬?
?
2.正則表達(dá)式的組成
- 原? 組成正則表達(dá)式的最?單位,任何字符都可以
- 量詞 量詞能夠增強(qiáng)原?的描述能?
- 模式修正符
注意:
- 模式字符串?定要使?原?字符串,也就是?r開頭的字符串。 r'www'
- 嚴(yán)格區(qū)分??寫
- 如果正則表達(dá)式中有{, }, [,],-,?,*,|^,$,.等做普通字符,則要將其轉(zhuǎn)義
?
3.正則常??法
3.1? re.match()
3.2? re.search()
3.3? re.findall()
3.4? re.split
3.5? re.sub和re.subn
3.6? re.group()和re.groups()
?于提取?元素,模式中?個(gè)括號(hào)就是?個(gè)?元素, group和groups只能在match和search?法?使?,通過返回的match object獲取?元素。在模式串和sub和subn中的替換字符串中可以使?\1, \2, \3....來引??元素
3.7? compile
當(dāng)我們使?正則表達(dá)式時(shí), re模塊會(huì)?兩件事
1、編譯正則表達(dá)式,如果正則表達(dá)式本身不合法,會(huì)報(bào)錯(cuò)
2、?編譯后的正則表達(dá)式去匹配對(duì)象
編譯正則表達(dá)式使?compile
4.練習(xí)
?戶名匹配:由數(shù)字、??寫字?、下劃線 _ 和中橫線 - 組成,?度為4到14位,并且不能以數(shù)字開頭。
把下劃線命名(也叫蛇形命名,所有單詞都是?寫,中間通過下劃線連接),轉(zhuǎn)化為?駝峰命名法(第?個(gè)單詞?寫,其余所有單詞?字??寫)。例如'go_to_next_page',轉(zhuǎn)化后改寫為'goToNextPage'。要求:?正則表達(dá)式替換
匹配郵箱
匹配?機(jī)號(hào)
匹配身份證號(hào)。
匹配URL地址
匹配?期
匹配QQ號(hào)
匹配微信號(hào)
匹配?牌號(hào)
?
?
# 匹配郵箱 def emil():emil_name = input('請(qǐng)輸入郵箱:')# ret =re.match(r'\w{1,10}((@qq.com)|(@126.com)|(@163.com))$',emil_name)ret =re.match(r'[0-9a-zA-Z]{1,10}((@qq.com)|(@126.com)|(@163.com))$',emil_name,re.I)print(ret)if ret != None:print('郵箱正確')else:print('郵箱格式不對(duì)') emil()?
總結(jié)
以上是生活随笔為你收集整理的正则表达式_月隐学python第20课的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 匿名包装器(function(){})(
- 下一篇: 文件处理_月隐学python第21课