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或多...