python正則表達(dá)式之對(duì)號(hào)入座篇
一、定義
正則表達(dá)式是對(duì)字符串操作的一種邏輯公式,就是用事先定義好的一些特定字符、及這些特定字符的組合,組成一個(gè)“規(guī)則字符串”,這個(gè)“規(guī)則字符串”用來(lái)表達(dá)對(duì)字符串的一種過(guò)濾邏輯。如果找到了符合這樣一種規(guī)則的字符串,我們就說(shuō)匹配上了,否則匹配失敗。
二、匹配規(guī)則
1.語(yǔ)法規(guī)則
2.相關(guān)注解
a.反斜杠問(wèn)題
假如你需要匹配文本中的字符"\",那么使用編程語(yǔ)言表示的正則表達(dá)式里將需要4個(gè)反斜杠"\\\\":前兩個(gè)和后兩個(gè)分別用于在編程語(yǔ)言里轉(zhuǎn)義成反斜杠,轉(zhuǎn)換成兩個(gè)反斜杠后再在正則表達(dá)式里轉(zhuǎn)義成一個(gè)反斜杠。其匹配過(guò)程如下:
字符 | 匹配過(guò)程 |
\\\\abc | 為字符串實(shí)值取消反斜杠轉(zhuǎn)義 |
\\abc | 為re.compile()取消反斜杠轉(zhuǎn)義 |
\abc | 欲匹配的目標(biāo)字符串 |
為了解決輸入四個(gè)“\”的麻煩,我們可以使用python里的原生字符串(raw string),即在字符串前面加上r。如下:
import re print(re.search(r"\\abc","123\\abc"))
從上面可知,使用原生字符串就省去了從字符串實(shí)值到re編譯器的字符串轉(zhuǎn)義過(guò)程,而編譯器編譯的時(shí)候仍然要轉(zhuǎn)義。
b.貪婪匹配與非貪婪匹配
貪婪匹配:正則表達(dá)式一般趨向于最大長(zhǎng)度匹配,也就是所謂的貪婪匹配。如:
import re print(re.match("ab.*c","abcdfghc"))
匹配的結(jié)果為整個(gè)字符串。而非貪婪匹配就是匹配到結(jié)果就好,最少地匹配字符。python默認(rèn)是貪婪模式;在量詞后面直接加上一個(gè)問(wèn)號(hào)?就是非貪婪模式。
import re print(re.match("ab.*?c","abcdfghc"))
這樣匹配的結(jié)果就是“abc”。
三、模塊和函數(shù)
re模塊
compile()編譯語(yǔ)法規(guī)則
match() 從字符串開(kāi)頭位置開(kāi)始匹配
search() 從字符串任意位置匹配到第一個(gè)符合規(guī)則的字符串
findall 以列表形式返回所有匹配到的字符串
finditer 以迭代器形式返回所有匹配到的字符串
split() 拆分字符串
group() 獲取匹配到的字符串的分組信息
四、特殊構(gòu)造的規(guī)則
總結(jié)
以上所述是小編給大家介紹的python正則表達(dá)式之對(duì)號(hào)入座篇,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)我們網(wǎng)站的支持!
上一篇:詳解正則表達(dá)式實(shí)現(xiàn)二代身份證號(hào)碼驗(yàn)證
欄 目:正則表達(dá)式
下一篇:MySQL使用正則表達(dá)式進(jìn)行查詢操作經(jīng)典實(shí)例總結(jié)
本文標(biāo)題:python正則表達(dá)式之對(duì)號(hào)入座篇
本文地址:http://mengdiqiu.com.cn/a1/zhengzebiaodashi/11226.html
您可能感興趣的文章
- 01-11正則表達(dá)式實(shí)現(xiàn)添加、刪除、替換三種功能
- 01-11python 用正則表達(dá)式篩選文本信息的實(shí)例
- 01-11正則表達(dá)式之匹配數(shù)字范圍
- 01-11python爬蟲(chóng)正則表達(dá)式之處理?yè)Q行符
- 01-11正則表達(dá)式匹配路由的實(shí)現(xiàn)代碼
- 01-11正則表達(dá)式截取身份證號(hào)碼加密的方法
- 01-11js正則表達(dá)式 匹配兩個(gè)特定字符間的內(nèi)容示例
- 01-11MySQL使用正則表達(dá)式進(jìn)行查詢操作經(jīng)典實(shí)例總結(jié)
- 01-11詳解正則表達(dá)式實(shí)現(xiàn)二代身份證號(hào)碼驗(yàn)證
- 01-11Python爬蟲(chóng)之正則表達(dá)式基本用法實(shí)例分析


閱讀排行
- 1C語(yǔ)言 while語(yǔ)句的用法詳解
- 2java 實(shí)現(xiàn)簡(jiǎn)單圣誕樹(shù)的示例代碼(圣誕
- 3利用C語(yǔ)言實(shí)現(xiàn)“百馬百擔(dān)”問(wèn)題方法
- 4C語(yǔ)言中計(jì)算正弦的相關(guān)函數(shù)總結(jié)
- 5c語(yǔ)言計(jì)算三角形面積代碼
- 6什么是 WSH(腳本宿主)的詳細(xì)解釋
- 7C++ 中隨機(jī)函數(shù)random函數(shù)的使用方法
- 8正則表達(dá)式匹配各種特殊字符
- 9C語(yǔ)言十進(jìn)制轉(zhuǎn)二進(jìn)制代碼實(shí)例
- 10C語(yǔ)言查找數(shù)組里數(shù)字重復(fù)次數(shù)的方法
本欄相關(guān)
- 01-11正則表達(dá)式實(shí)現(xiàn)添加、刪除、替換三
- 01-11正則表達(dá)式之匹配數(shù)字范圍
- 01-11python 用正則表達(dá)式篩選文本信息的實(shí)
- 01-11正則表達(dá)式匹配路由的實(shí)現(xiàn)代碼
- 01-11python爬蟲(chóng)正則表達(dá)式之處理?yè)Q行符
- 01-11js正則表達(dá)式 匹配兩個(gè)特定字符間的
- 01-11正則表達(dá)式截取身份證號(hào)碼加密的方
- 01-11python正則表達(dá)式之對(duì)號(hào)入座篇
- 01-11MySQL使用正則表達(dá)式進(jìn)行查詢操作經(jīng)典
- 01-11詳解正則表達(dá)式實(shí)現(xiàn)二代身份證號(hào)碼
隨機(jī)閱讀
- 08-05DEDE織夢(mèng)data目錄下的sessions文件夾有什
- 01-11ajax實(shí)現(xiàn)頁(yè)面的局部加載
- 01-10C#中split用法實(shí)例總結(jié)
- 04-02jquery與jsp,用jquery
- 08-05dedecms(織夢(mèng))副欄目數(shù)量限制代碼修改
- 01-10delphi制作wav文件的方法
- 01-10使用C語(yǔ)言求解撲克牌的順子及n個(gè)骰子
- 08-05織夢(mèng)dedecms什么時(shí)候用欄目交叉功能?
- 01-11Mac OSX 打開(kāi)原生自帶讀寫NTFS功能(圖文
- 01-10SublimeText編譯C開(kāi)發(fā)環(huán)境設(shè)置