1. 正則各種字元表示的含義
'.'預設匹配除\n之外的任意乙個字元,若指定flag dotall,則匹配任意字元,包括換行'^
'匹配字元開頭'*
' 匹配*號前的字元0次或多次,re.findall("
ab*","
cabb3abcbbac
") 結果為['
abb', '
ab', 'a'
]'+' 匹配前乙個字元1次或多次,re.findall("
ab+","
ab+cd+abb+bba
") 結果['
ab', '
abb']'
?'匹配前乙個字元1次或0次''
匹配前乙個字元m次
'' 匹配前乙個字元n到m次,re.findall("
ab","
abb abc abbcbbb
") 結果'
abb', '
ab', '
abb']'
|' 匹配|左或|右的字元,re.findall("
abc|abc
","abcbabccd
") 結果'
abc、abc''
\a' 只從字元開頭匹配,re.search("
\aabc
","wangzaiabc
") 是匹配不到的'\z
'匹配字元結尾,同$'\d
' 匹配數字0-9'\d
'匹配非數字'\w
' 匹配[a-za-z0-9]'\w
' 匹配非[a-za-z0-9]'\s
' 匹配空白字元、\t、\n、\r , re.search("
\s+","
ab\tc1\n3
").group() 結果 '\t'
'(?p...)
' 分組匹配 re.search("
(?p[0-9])(?p[0-9])(?p[0-9])
","371481199306143242
").groupdict()
#結果
2. re模組常用函式用法
re.match 從頭開始匹配re.search 匹配包含,只找到第乙個符合要求
print(re.search('
\d+\.?\d*[*/]\d+\.?\d*
', '
9-3.33+10*568/14+30.123*2998
').group()) #
# 匹配整數或者浮點數,判斷是否有乘除號
re.findall 把所有匹配到的字元放到以列表中的元素返回
print(re.findall('
\d+\.?\d*[*/]\d+\.?\d*
', '
9-3.33+10*568/14+30.123*2998'))
re.split 以匹配到的字元當做列表分隔符
print(re.split("
[0-9]+
", "
ab12cd34ef"))
re.sub 匹配字元並替換
print(re.sub("
[0-9]+
", "
wangzai
", "
1.1.2
")) #
# re.sub(pattern, replace, string),把匹配到的pattern替換成replace
3. 匹配**號碼
phone = "my phone number is 18676383598
"m = re.search("
(1)([358]\d)
", phone)
print(m.group())
4. 匹配ip
ip = "inet 192.168.1.211 netmask 255.255.255.0 broadcast 192.168.1.255
"m = re.search('
\d\.\d\.\d\.\d
', ip) #
# search只能找到第乙個符合要求的,並且要通過group()來獲取對應的值
(m.group())
n = re.findall('
\d\.\d\.\d\.\d
', ip) #
# findall是獲取所有符合要求的值
print(n)
5. 匹配郵箱
email = "[email protected] doubi
"m = re.search(r"
[0-9_.a-z]@[0-9.a-z]
", email)
print(m.group())
6. 匹配**
website = "uooc
"m = re.search(r"
(\w+)://[0-9.a-z]")
print(m.group())
正則re模組
匹配任意乙個字元 以某個字元開頭 以某個字元結尾 匹配0次或多次 匹配一次或多次 匹配0次或1次 匹配n次 匹配n次或多次 匹配n次到m次 字符集,非 a z 匹配小寫字母a到z的任意字母一次 a z 匹配除了小寫字母a到z之外的任意字元一次 d 匹配數字0 9,0次或多次 d匹配任何十進位制數,0...
re正則模組
1.正規表示式的常用符號 預設匹配除 n之外的任意乙個字元,若指定flag dotall,則匹配任意字元,包括換行 匹配字元開頭,若指定flags multiline,這種也可以匹配上 r a nabc neee flags re.multiline 匹配字元結尾,或e.search foo bfo...
python常用模組之re模組(正則)
python種的re模組常用的5種方法,分別是re.match re.search re.findall re.split re.sub。在介紹五種方法之前,需要介紹一下正則的基礎。表示任意字元,除 n以為 轉義字元 字符集,表示取其中任意乙個字元。比如 abc d 可以匹配到ad bd cd。d ...