Python之re模組正規表示式

2022-06-25 08:24:14 字數 1920 閱讀 1318

re模組用於對python的正規表示式的操作

字元:.匹配除換行符以外的任意字元

\w匹配字母或數字或下劃線或漢字

\s匹配任意空白符

\b匹配單詞的開始或結束

^匹配字串的開始

$匹配字串的結束

次數*重複零次或多次

+重複一次或多次

?重複零次或者一次

重複n次

重複n次或更多次

重複n到m次

出現一串類似於這樣的字元代表匹配上了 使用group()把匹配的字元列印出來

match是從字串開頭開始匹配所以匹配到了第乙個字元a

搜尋整個字串匹配第乙個數字

匹配第乙個一串數字 加了+號

後面加了一串字串也是匹配第乙個

匹配所有的使用另外乙個方法findall 這裡後面不用group

取出所有非數字的字元

使用數字作為分隔符分割

替換所有匹配字串

替換一次

匹配ip位址   

1,匹配乙個數字只匹配到1

2,匹配多個數字配置到10

3,匹配多個數字1-4次匹配到10 因為ip位址之間使用.分割

4,使用\d+.表示匹配數字加. 後面代表匹配1-4次

ps:這裡的.代表匹配任意乙個字元這裡剛剛好任意乙個字元是.需要指定匹配.則在前面加\

假如這個字串裡面還有其他數字怎麼來匹配到ip位址呢

re.search("[0-2][0-9][0-9]\.[0-2][0-9][0-9]\.[0-2][0-9][0-9]\.[0-2][0-9][0-9]",t).group()

'10.8.45.27'

更加嚴謹一點的表示式

re.search("(\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|1\d\d|2[0-4]\d|25[0-5])",t).group()

以取ip第一位為例

re.search("(\d|1\d\d|2[0-4]\d\25[0-5])\.",t).group()

(\d|1\d\d|2[0-4]\d\25[0-5])\.

第一位要不就是乙個兩位數 要不就是以1開頭的三位數 要不就是以2開頭第二位是0-4之一第三位是乙個數字 要不就是25開頭第三位為0-5(嚴格來說應該是0-4) 最後匹配乙個.號  最後一位數不帶.號

使用groups生成元祖

name = "liu yueming"

re.search("(\w+) (\w+)",name).groups()

('liu', 'yueming')

>>> res = re.search("\w+",name)

>>> res = re.search("(?p\w+)\s(?p\w+)",name)

>>> res.group("name")

'liu'

>>> res.group("last_name")

'yueming'

取到名和姓 用的少

使用正規表示式實現計算器功能

python常用模組之re模組(正則)

python種的re模組常用的5種方法,分別是re.match re.search re.findall re.split re.sub。在介紹五種方法之前,需要介紹一下正則的基礎。表示任意字元,除 n以為 轉義字元 字符集,表示取其中任意乙個字元。比如 abc d 可以匹配到ad bd cd。d ...

python常用模組之 正則re模組

python中使用正規表示式的步驟 1.匯入re模組 import re 2.初始化乙個regex物件 re.compile 3.剛剛建立的regex物件呼叫search方法進行匹配,返回要給march物件 4.剛剛的march物件呼叫group方法,展示匹配到的字串 下面例子的知識點 對正規表示式...

python 模組之re正規表示式

簡介 正規表示式本身是乙個小型的 高度專業化的程式語言,而在python中,通過內嵌整合re模組,我們可以通過直接呼叫來實現正則匹配。正規表示式基礎知識 普通字元 匹配自身 abc abc 元字元 匹配任何字元 n 換行符除外 例 a.a aba 轉義字元 例 a tb a b 匹配前乙個字元0或多...