re模組 正規表示式 python

2021-09-29 06:23:03 字數 1864 閱讀 3745

\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 函式是逐行匹配的。...