\d 匹配數字
\w 匹配字母或數字
\s 匹配乙個空格(包括tab)
\s+ 表示至少乙個空格
* 表示任意字元(包括零個)
+ 表示至少乙個字元
? 表示0個或1個字元
表示n個字元
表示n-m個字元
. 可以匹配任意字元
a|b 表示可以匹配a或b
^ 行的開頭 ^\d 表示必須以數字開頭
$ 表示結尾 $\d 表示必須以數字結尾
r 字首,不需要考慮轉義符
>>
>r'abc\-001'
'abc\\-001'
import re
test =
input
('請輸入小寫字母'
)# 使用者輸入字元
# match()判斷是否匹配, ^ $ 開頭結尾以字母,範圍a-z
if re.match(r'^[a-z]+$'
, test)
:print
('正確:%s'
% test)
else
:print
('錯誤'
)
# re.split正規表示式來把不規範的輸入轉化成正確的陣列
>>
>re.split(r'\s+'
,'a b c')[
'a',
'b',
'c']
>>
>m = re.match(r'^(\d)-(\d)$'
,'010-12345'
)>>
>m.group(
)# group()分組功能 group(1),group(2)......
010-
12345
>>
>m.group(1)
010>>
>m.group(2)
12345
# groups() 以元組的方式返回字元
t ='19:05:30'
m = re.match(r'^(0[0-9]|1[0-9]|2[0-3]|[0-9])\:(0[0-9]|2[0-9]|3[0-9]|4[0-9]|5[0-9]|[0-9])\:(0[0-9]|1[0-9]|2[0-9]|3[0-9]|4[0-9]|5[0-9]|[0-9])$'
, t)
m.groups()(
'19'
,'05'
,'30'
)
# 貪婪匹配 正則匹配盡可能匹配多的字元
>>
> re.match(r'^(\d+)(0*)$'
,'102300'
).groups()(
'102300',''
)# 改為非貪婪匹配,僅需要新增 ?
>>
>re.match(r'^(\d+?)(0*)$'
,'102300'
).groups()(
'1023'
,'00'
)# 編譯 re.compile() 公式編譯,提高重複匹配效益
>>
>
import re
>>
>re_telephone = re.
compile
(r'^(\d)-(\d)$'
)>>
>re_telephone.match(
'010-12345'
).groups()(
'010'
,'12345'
)
python正規表示式re模組
嗯 看看就好 小白可能會坑人 有錯誤的話麻煩指出來謝謝 2018年3月15日13 54 11 re 模組 函式與方法的區別 如果是乙個函式,用類名去呼叫,如果是乙個方法,用物件去呼叫 1.compile函式 編 print n1 10 n import re pattern re.compile r...
Python 正規表示式 re模組
在python中,需要用到正規表示式時,就需要匯入re模組進行操作,們可以直接呼叫來實現正則匹配 普通字元 匹配自身 abcabc 匹配任意除換行符 n 外的字元 在dotall模式中也能匹配換行符 a.cabc 轉義字元,使後乙個字元改變原來的意思 a.c a c a.c a c 匹配前乙個字元0...
Python 正規表示式,re模組
1.re.findall 搜尋字串,以列表形式返回全部能匹配的子串,返回形式為陣列 findall pattern,string,flags 0 第乙個引數,正規表示式 第二個引數,搜尋的是哪些字串 第三個引數,匹配的模式,其中re.s使匹配包括換行在內的所有字元。findall 函式是逐行匹配的。...