Python正則表達(dá)式的另類解答
一、正則表達(dá)式的作用
提示:正則表達(dá)式是一段特殊的字符串,它表示的是一段有規(guī)律的信息。如果我們想從一段文字中提取想要的內(nèi)容,就可以通過(guò)正則表達(dá)式來(lái)方便的幫助我們提取。
提示:以下是本篇文章正文內(nèi)容,下面案例可供參考
二、正則表達(dá)式基本符號(hào)
1.點(diǎn)號(hào)“.”
“.”表示的是匹配除了換行符以外的任何一個(gè)字符,包括但不限于英文字母、數(shù)字、漢字、英文標(biāo)點(diǎn)符號(hào)和中文標(biāo)點(diǎn)符號(hào)。
2.星號(hào)“”
“”表示匹配它前面的一個(gè)子表達(dá)式(普通字符、另一個(gè)或幾個(gè)正則表達(dá)式符號(hào))0次到無(wú)限次。
3.問(wèn)號(hào)“?”
“?”表示匹配它前面的子表達(dá)式0次或者1次。注意,這里的問(wèn)號(hào)是英文問(wèn)號(hào)。
4.?dāng)?shù)字“\d”
“\d”在正則表達(dá)式里表示一位數(shù)字,“\d”由反斜杠和字母d構(gòu)成的,但是要把“\d”看成一個(gè)正則表達(dá)式符號(hào)整體。
5.小括號(hào)“()”
小括號(hào)可以把括號(hào)里面的內(nèi)容提取出來(lái)。
三、Python自帶正則表達(dá)式模塊
Python自帶一個(gè)非常強(qiáng)大的的正則表達(dá)式模塊,名字為“re”,也就是“regular expression”的首字母縮寫。在Python中需要先使用導(dǎo)入的語(yǔ)句:import re 導(dǎo)入這個(gè)模塊再進(jìn)行使用。
1.findall函數(shù)
findall的函數(shù)原型為:re.findall(pattern, string, flags=0)
pattern表示正則表達(dá)式,string表示原來(lái)的字符串,flags表示一些特殊功能的標(biāo)志。 這個(gè)參數(shù)是可以省略的。當(dāng)不省略的時(shí)候,具有一些輔助功能,例如忽略大小寫、忽略換行符等。
import re text = '牛肉價(jià)格:70¥,九節(jié)蝦價(jià)格:120¥,西蘭花價(jià)格:5¥,馬鮫魚價(jià)格:40¥' prices = re.findall('價(jià)格:(.*?)¥', text) print('正則表達(dá)式返回的價(jià)格:{}'.format(prices))
findall返回的結(jié)果是一個(gè)列表,包含了所有的匹配到的結(jié)果:
2. search()的函數(shù)原型為:
re.search(pattern, string, flags=0)
用法和findall()的用法一樣,但是search()只會(huì)返回第1個(gè)滿足要求的字符串。對(duì)于從超級(jí)大的文本里面只找第1個(gè)數(shù)據(jù)特別有用,可以大大提高程序的運(yùn)行效率。
import re text = '牛肉價(jià)格:70¥,九節(jié)蝦價(jià)格:120¥,西蘭花價(jià)格:5¥,馬鮫魚價(jià)格:40¥' prices = re.search('價(jià)格:(.*?)¥', text) print('正則表達(dá)式返回的價(jià)格:{}'.format(prices.group(1)))
對(duì)于結(jié)果,如果匹配成功,則是一個(gè)正則表達(dá)式的對(duì)象;如果沒(méi)有匹配到任何數(shù)據(jù),就是None。 如果需要得到匹配到的結(jié)果,則需要通過(guò).group()這個(gè)方法來(lái)獲取里面的值。group()的參數(shù)最大不能超過(guò)正則表達(dá)式里面括號(hào)的個(gè)數(shù)。參數(shù)為1表示讀取第1個(gè)括號(hào)中的內(nèi)容,參數(shù)為2表示讀取第2個(gè)括號(hào)中的內(nèi)容,以此類推。
總結(jié)
本篇文章就到這里了,希望能夠給你帶來(lái)幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
python實(shí)現(xiàn)定制交互式命令行的方法
這篇文章主要介紹了python實(shí)現(xiàn)定制交互式命令行的方法,需要的朋友可以參考下2014-07-07Tensorflow 模型轉(zhuǎn)換 .pb convert to .lite實(shí)例
今天小編就為大家分享一篇Tensorflow 模型轉(zhuǎn)換 .pb convert to .lite實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-02-0210個(gè)有用的Python字符串函數(shù)小結(jié)
本文主要介紹了10個(gè)有用的Python字符串函數(shù)小結(jié),文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-08-08python filecmp.dircmp實(shí)現(xiàn)遞歸比對(duì)兩個(gè)目錄的方法
這篇文章主要介紹了python filecmp.dircmp實(shí)現(xiàn)遞歸比對(duì)兩個(gè)目錄的方法,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-05-05PyTorch?之?強(qiáng)大的?hub?模塊和搭建神經(jīng)網(wǎng)絡(luò)進(jìn)行氣溫預(yù)測(cè)
hub 模塊是調(diào)用別人訓(xùn)練好的網(wǎng)絡(luò)架構(gòu)以及訓(xùn)練好的權(quán)重參數(shù),使得自己的一行代碼就可以解決問(wèn)題,方便大家進(jìn)行調(diào)用,這篇文章主要介紹了PyTorch?之?強(qiáng)大的?hub?模塊和搭建神經(jīng)網(wǎng)絡(luò)進(jìn)行氣溫預(yù)測(cè),需要的朋友可以參考下2023-03-03Python中使用實(shí)現(xiàn)輸出哈沙德數(shù)的多種方法小結(jié)
哈沙德數(shù)(Harshad?Number),又稱Niven數(shù),是指一個(gè)自然數(shù),它可以被它的各位數(shù)字之和整除,本文將探討如何使用多種不同的方法來(lái)判斷一個(gè)數(shù)字是否是哈沙德數(shù),感興趣的可以了解下2024-01-01windows+vscode穿越跳板機(jī)調(diào)試遠(yuǎn)程代碼的圖文教程
本文通過(guò)圖文并茂的形式給大家介紹了windows+vscode穿越跳板機(jī)調(diào)試遠(yuǎn)程代碼,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-02-02