python正規表示式的表示 和高階用法

2021-09-07 04:26:45 字數 1370 閱讀 5663

在程式設計中,有時需要爬出我們所需要的字元,而且它們可能挨著在一起,也可能分布在**的各個角落,我們今天解決一下要摘出數量的問題。

字元: * 星號程式設計中,表示可以輸出全部,也可以乙個都不輸出,比如 import re ret = re.search(』 .* ',『erdgfrewr』),這時,就可以輸出全部的字串,當字串乙個都沒有的話,也可以乙個都不輸出。

字元:+ 加號在程式設計中,表示出現至少一次,也可以是無限次,比如說 import re ret = re.search (』[a-za-z0-9]+[\w]*』, 'i like china),這個就是說在後面的字串中 ,找出 a-za-z0-9 和 所有的文字 ,輸出至少乙個。

字元: 問號是輸出乙個,對於加了問號的,輸出時,只能輸出乙個字元,要不然就乙個都沒有。

字元: 匹配前乙個字元出現 m 次, import re ret = re.search (』[a-za-z0-9]*』, 'i like china),這串**,就表示輸出四個符合前面條件的四個字元。

字元: 表示至少輸出m個字元

字元: 表示輸出m - n 個字元

表示邊界的字元有表示結束的,表示開始的,表示匹配單詞的邊界,非單詞的邊界。

^ 表示從什麼開始

$ 表示從什麼結束

\b 匹配乙個單詞的邊界

\b 匹配乙個非單詞的邊界

|用豎線分開的,表示匹配其中的乙個

(ab)

將括號中字元作為乙個分組

\num

引用分組num匹配到的字串

(?p)

分組起別名

(?p=name)

引用別名為name分組匹配到的字串

高階用法就是用別的表示式,

search

findall

sub介紹:

match是我們常用的,都是從開頭來匹配字元,

search用法,讓我們不用從字串的開頭來進行匹配,直接找到我們正規表示式裡需要的字元,但是在匹配中,如果遇到和正規表示式的規則不符合,就會停止,後面還有符合的,也不會去匹配了

findall這個用法,會讓我們匹配到的字元呈現出列表的狀態,而且如果匹配到和表示式中不符合的,也會繼續向後找,只到完全匹配出來為止。

sub將匹配到的資料進行替換

這個就厲害了,當我們想把字串中的資料進行替換時,我們就可以用sub 的形式, import re ret = re.sub(r』english』,『china』,『i love english』』),這時,就可以將english替換成china咯,表示式中的r 是原始字元的意思。

正規表示式的邊界表示

接下來學習正規表示式的邊界表示,邊界表示就是在寫正規表示式的時候,限制匹配的字串的開始和結束邊界。字元 描述 匹配字串開頭 匹配字串結尾 b 匹配乙個單詞的邊界 b 匹配非單詞邊界 注意 邊界字元只用於描述邊界資訊,不能用於字元的匹配。示例 完善之前課時中關於手機號碼匹配的示例,在匹配超過11位的手...

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

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

python正規表示式及使用正規表示式的例子

正規表示式 正則表達用來匹配字串 正規表示式匹配過程 正規表示式語法規則 匹配除換行 n 外的任意字串 abcabc 轉義字元,使後乙個字元改變原來的意思 a c a c 字符集,對應的位置可以是字符集中任意字元,字符集中的字元可以逐個列出,也可以給出範圍,如 abc 或 a c 第乙個字元如果是 ...