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的更多內容!     

推薦閱讀: