正規表示式,就是從一段字串中提取需要的字串
需要引入的模組:re,常用的函式:re.findall(引數1,引數2,引數3)
引數1,表示用什麼規則進行提取引數2,表示從**提取。返回值是乙個列表
引數3,re.i 表示不區分大小寫,re.s 匹配多行中符合條件的值
1、. 萬用字元,表示匹配某個字元後面的任意乙個字元
str1 =
'aab1abb2ab'
print
(re.findall(
'ab.'
,str1)
)#會找出ab後有任意乙個字元的字元
==>
['ab1'
,'abb'
]
2、? 萬用字元,表示匹配某個字元後面的0個或1個字元
str1 =
'aab1abbbdef'
print
(re.findall(
'ab?'
,str1)
)#會找a後有0個、1個b的字元
==>
['a'
,'ab'
,'ab'
]
3、* 萬用字元,表示匹配某個字元後面的若干個字元,也包括0個的情況
str1 =
'aab1abb2abbb3'
print
(re.findall(
'ab*'
,str1)
)#會找a後有0個、1個、多個b的字元
==>
['a'
,'ab'
,'abb'
,'abbb'
]str2=
'ab1abc2abcc3bc4'
print
(re.findall(
'abc*'
,str2)
)#會找ab後有0個、1個、多個c的字元
==>
['ab'
,'abc'
,'abcc'
]
4、+ 萬用字元,表示匹配某個字元後面的1個或多個字元,不包括0個情況
str1 =
'a1ab2abbb3'
print
(re.findall(
'ab+'
,str1)
)#找a後有1個、多個b的字元
==>
['ab'
,'abbb'
]
5、()表示只顯示匹配到的值
str1 =
'a1ab2abbb3'
print
(re.findall(
'a(b+)'
,str1))==
>
['b'
,'bbb'
]
6、.*? 提取字串兩端之間的內容
特點:懶惰匹配,盡可能少的匹配,取前不取後
str1 =
'我是鹹魚呀'
print
(re.findall(
'是(.*?)呀'
,str1)
)str2 =
'鹹魚是我'
print
(re.findall(
'(.*?)是'
,str2)
)str3 =
'我是鹹魚'
print
(re.findall(
'是(.*?)'
,str3)
)#彰顯取前不取後的特點
==>
['鹹魚']==
>
['鹹魚']==
>[''
]
7、.* 提取字串兩端之間的內容
特點:貪婪匹配,盡可能多的匹配,前後都會匹配
str1 =
'我是鹹魚呀'
print
(re.findall(
'是(.*)呀'
,str1)
)str2 =
'鹹魚是我'
print
(re.findall(
'(.*)是'
,str2)
)str3 =
'我是鹹魚'
print
(re.findall(
'是(.*)'
,str3)
)# 與.*?匹配的區別之處
==>
['鹹魚']==
>
['鹹魚']==
>
['鹹魚'
]
8、\w 表示匹配字母、數字、下劃線,n表示匹配多少位
str1 =
'1@ab#$2c_3__!@#'
print
(re.findall(
'\w'
,str1))==
>
['ab'
,'2c'
,'_3'
,'__'
]
9、\w 表示匹配非字母、非數字、非下劃線,n表示匹配多少位
str1 =
'1@ab#$2c_3__!@#'
print
(re.findall(
'\w'
,str1))==
>
['#$'
,'!@'
]
10、\s 匹配空格、\t 、\n
str1=
'''@我是_
\t 鹹魚@
'''print
(re.findall(
'\s'
,str1))==
>
['\n'
,'\t'
,' '
,'\n'
]
11、\s 匹配非空格、非\t 、非\n
str1=
'''@我是_
\t 鹹魚@
'''print
(re.findall(
'\s'
,str1))[
'@',
'我',
'是',
'_',
'鹹',
'魚',
'@']
12、^ 以什麼開頭 $以什麼結尾
list1 =
['a'
,'1ab'
,'abc'
,'1a'
,'1abc'
]for one in list1:
if re.findall(
'^ab'
,one)
:print
('以ab開頭'
)elif re.findall(
'ab$'
,one)
:print
('以ab結尾'
)else
:print
('無關')==
>無關
==>以ab結尾
==>以ab開頭
==>無關
==>無關
15 正規表示式(下)
正則符號補充 表示式描述 n 是非負整數。正好匹配 n 次。n 和 m 是非負整數,其中 n m。匹配至少 n 次,至多 m 次。xyz 字符集。匹配包含的任一字元。xyz 反向字符集。匹配未包含的任何字元。字元補充 字元描述 b匹配乙個字邊界,即字與空格間的位置。例如,er b 匹配 never ...
正規表示式 正規表示式 總結
非負整數 d 正整數 0 9 1 9 0 9 非正整數 d 0 負整數 0 9 1 9 0 9 整數 d 非負浮點數 d d 正浮點數 0 9 0 9 1 9 0 9 0 9 1 9 0 9 0 9 0 9 1 9 0 9 非正浮點數 d d 0 0 負浮點數 正浮點數正則式 英文本串 a za z...
day15正規表示式
什麼時異常捕獲 程式報錯出現了異常 程式異常的後果 程式會直接結束,不會往後面執行 異常捕獲 目的 當程式出先異常的時候,程式不崩潰繼續執行後面的 什麼時候需要捕獲 知道某個地方出現異常,但是 沒有問題 使用者的不當操作 這個時候需要異常捕獲 語法1 捕獲所有異常型別 try 段1 except 段...