正規表示式(python)

2021-10-05 13:03:37 字數 2897 閱讀 9799

簡單來說,正規表示式是用來對字串做處理的。它定義了字串的乙個「模型」,符合這個模型的字串將被匹配/篩選

直接上語法規則比較枯燥,先用乙個例子來體會一下:

匹配的字串:「hello world」

正規表示式:「h…llo"

("."表示任意除換行符以外的字元)

匹配結果:「hello」

完整介紹:

殘缺版重點:

完整版太長了,總結一下,一般情況常用的幾個:

字元類語法

解釋模式

字串.匹配除換行符「\n「以外的字元

hell… .orld

hello! world

[…]字符集,相當於乙個列表集合,可以代替集合中的任意元素

xi[xia]xi

xixxi/xiixi

\d數字

6\d6

666\w

單詞str\wng

strong

數量類語法

解釋模式

字串*[0,)

23*23333

[m , n]一般模式

23233333/2333/23333

定位符類語法

解釋模式

字串^定位首位(多行定位,每一行開頭)

^hoho\nho匹配出兩個ho

$定位末尾(多行定位,每一行末尾)

niu$

niuni無法匹配,因為niu不在末尾

分組類

每個正規表示式可以作為乙個分組使用『()』括起來,通過連線詞等形式組合在一起,變成更長的正規表示式。

正規表示式允許為該分組命名,並引用之前定義過的分組。

python re模組用於處理正規表示式

原生字串對應python中的pattern

#r代表後面的字串為正規表示式,用於避免語言和正規表示式之間的反斜槓問題

pattern = re.

compile

(r'hello'

)

擁有pattern後,python將其傳入re模組,對正規表示式模式進行處理

re模組提供一下幾種方法:

re.match(pattern, string[

, flags]

)#match是檢測傳入的string是否符合這個模式,且是從頭開始匹配

re.search(pattern, string[

, flags]

)#search是搜尋string中符合模式的部分,呼叫group()返回匹配的列表

re.split(pattern, string[

, maxsplit]

)#模式作為分割符將string進行分割,返回分割後的列表

re.findall(pattern, string[

, flags]

)#搜尋string,以列表形式返回全部能匹配的子串

re.finditer(pattern, string[

, flags]

)#搜尋string,返回乙個順序訪問每乙個匹配結果(match物件)的迭代器

re.sub(pattern, repl, string[

, count]

)#替換匹配到的所有子串為指定內容,並返回整個字串

re.subn(pattern, repl, string[

, count]

)

常用舉例:search:

result = re.search(r"\d+"

,"送你999朵花"

)# match預設從開頭匹配,search不要求從開頭匹配,如果正規表示式中加入^表示從開頭匹配,那麼search與match相同。

if result:

print

(result.group())

# 999 自會匹配第乙個 (findall匹配所有,返回列表)

else

:print

("未找到"

)

findall

result = re.findall(r"\d+"

,"送你999多花,老鐵雙擊666"

)# search只匹配第乙個,findall匹配所有(返回列表)

if result:

print

(result)

# ['999', '666']

else

:print

("未找到"

)

spilt

result = re.split(r":| "

,"1:李華 12 歲"

)# 切割,根據冒號:或者空格切割,返回列表

print

(result)

# ['1', '李華', '12', '歲']

sub

# sub替換 替換成固定字串

result = re.sub(r"996"

,"早9晚9上6天"

,"現在網際網路實行996,甚至007"

)# 替換匹配到的所有,並返回整個字串。

print

(result)

# 在網際網路實行早9晚9上6天,甚至007

python正規表示式元字元 正規表示式

字元 描述將下乙個字元標記為乙個特殊字元 或乙個原義字元 或乙個 向後引用 或乙個八進位制轉義符。例如,n 匹配字元 n n 匹配乙個換行符。序列 匹配 而 則匹配 匹配輸入字串的開始位置。如果設定了 regexp 物件的 multiline 屬性,也匹配 n 或 r 之後的位置。匹配輸入字串的結束...

Python 正規表示式

1.在python中,所有和正規表示式相關的功能都包含在re模組中。2.字元 表示 字串的末尾 如 road 則表示 只有當 road 出現在乙個字串的尾部時才會匹配。3.字元 表示 字元中的開始 如 road 則表示 只有當 road 出現在乙個字串的頭部時才會匹配。4.利用re.sub函式對字串...

Python正規表示式

學習python自然而然就不得不面對正規表示式這個難題。當初在沒有學習python之前,自己也曾經嘗試著學習過正規表示式,但是那時候感覺很麻煩,很難懂,結果就是不了了之。但是現在學習python我用的書是 python基礎教程 第二版 這本書中對re模組的講解很簡單易懂,內容不多但起碼把人領進門了,...