Python正則表達式的另類解答
一、正則表達式的作用
提示:正則表達式是一段特殊的字符串,它表示的是一段有規律的信息。如果我們想從一段文字中提取想要的內容,就可以通過正則表達式來方便的幫助我們提取。
提示:以下是本篇文章正文內容,下面案例可供參考
二、正則表達式基本符號
1.點號“.”
“.”表示的是匹配除瞭換行符以外的任何一個字符,包括但不限於英文字母、數字、漢字、英文標點符號和中文標點符號。
2.星號“”
“”表示匹配它前面的一個子表達式(普通字符、另一個或幾個正則表達式符號)0次到無限次。
3.問號“?”
“?”表示匹配它前面的子表達式0次或者1次。註意,這裡的問號是英文問號。
4.數字“\d”
“\d”在正則表達式裡表示一位數字,“\d”由反斜杠和字母d構成的,但是要把“\d”看成一個正則表達式符號整體。
5.小括號“()”
小括號可以把括號裡面的內容提取出來。
三、Python自帶正則表達式模塊
Python自帶一個非常強大的的正則表達式模塊,名字為“re”,也就是“regular expression”的首字母縮寫。在Python中需要先使用導入的語句:import re 導入這個模塊再進行使用。
1.findall函數
findall的函數原型為:re.findall(pattern, string, flags=0)
pattern表示正則表達式,string表示原來的字符串,flags表示一些特殊功能的標志。 這個參數是可以省略的。當不省略的時候,具有一些輔助功能,例如忽略大小寫、忽略換行符等。
import re text = '牛肉價格:70¥,九節蝦價格:120¥,西蘭花價格:5¥,馬鮫魚價格:40¥' prices = re.findall('價格:(.*?)¥', text) print('正則表達式返回的價格:{}'.format(prices))
findall返回的結果是一個列表,包含瞭所有的匹配到的結果:
2. search()的函數原型為:
re.search(pattern, string, flags=0)
用法和findall()的用法一樣,但是search()隻會返回第1個滿足要求的字符串。對於從超級大的文本裡面隻找第1個數據特別有用,可以大大提高程序的運行效率。
import re text = '牛肉價格:70¥,九節蝦價格:120¥,西蘭花價格:5¥,馬鮫魚價格:40¥' prices = re.search('價格:(.*?)¥', text) print('正則表達式返回的價格:{}'.format(prices.group(1)))
對於結果,如果匹配成功,則是一個正則表達式的對象;如果沒有匹配到任何數據,就是None。 如果需要得到匹配到的結果,則需要通過.group()這個方法來獲取裡面的值。group()的參數最大不能超過正則表達式裡面括號的個數。參數為1表示讀取第1個括號中的內容,參數為2表示讀取第2個括號中的內容,以此類推。
總結
本篇文章就到這裡瞭,希望能夠給你帶來幫助,也希望您能夠多多關註WalkonNet的更多內容!
推薦閱讀:
- Python 正則表達式基礎知識點及實例
- Python使用re模塊實現正則表達式操作指南
- Python知識點詳解之正則表達式語法
- python正則表達中的re庫常用方法總結
- Python中正則表達式對單個字符,多個字符和匹配邊界等使用