Day16正規表示式 知識點總結

2021-10-13 07:25:12 字數 4091 閱讀 3742

# re模組是python內建的專門提供處理正規表示式函式的模組

from re import fullmatch

re_str =

'abc'

# 規則:乙個字串有三個字元,分別是a、b和c

result = fullmatch(re_str,

'abc'

)print

(result)

『』』

『a.b』 - 匹配乙個長度是3的字串,第乙個字元是a,最後字元是b,中間是任意乙個字元

『』』

re_str =

'a.c'

result = fullmatch(re_str,

'abc'

)print

(result)

re_str =

'a\db'

# 匹配乙個長度是3,第乙個字元是a,最後字元是b,中間是任意乙個數字字元

result = fullmatch(re_str,

'a4b'

)print

(result)

re_str =

'abc\s123'

result = fullmatch(re_str,

'abc 123'

)print

(result)

result = fullmatch(re_str,

'abc\n123'

)print

(result)

result = fullmatch(re_str,

'abc\t123'

)print

(result)

re_str =

'a\db'

result = fullmatch(re_str,

'a9b'

)print

(result)

『』』

注意:a.乙個只能匹配乙個字元

b.在中可以將-放在兩個字元自建表示範圍,但是-前面的字元的編碼值必須小於後面的字元的編碼值

c.在中-只有在兩個字元之間才有特殊意義,如果在最前面或最後面就表示-本身

[a1+] - 匹配字元a或者字元1或者字元+

[\dxy] - 匹配乙個任意數字或者x或者y

[1-9] - 匹配1到9的任意乙個數字字元

[a-z] - 匹配任意乙個小寫字母

[a-z] - 匹配任意乙個大寫字母

[\u4e00-\u9fa5] - 匹配任意乙個中文字元

[a-z+=/]

『』』

re_str =

'a[xy0]b'

# 匹配乙個長度是3,第乙個字元是a,最後乙個是b,中間是x、y、0中的任意乙個字元的字串

result = fullmatch(re_str,

'axb'

)print

(result)

『』』

[^abc]

[^\d] - 匹配任意乙個非數字字元

『』』

re_str =

'\d[^abc]\d'

print

(fullmatch(re_str,

'3g3'

))

from re import fullmatch
re_str = r'abc,\b123'

result = fullmatch(re_str,

'abc,123'

)print

(result)

re_str = r'\b\d\d\s\babc'

result = fullmatch(re_str,

'11 abc'

)print

(result)

re_str =

'^\d\d\d'

result = fullmatch(re_str,

'892'

)print

(result)

re_str =

'\d\d\d$'

result = fullmatch(re_str,

'892'

)print

(result)

from re import fullmatch, search, findall
『』』

a+ - 字元a出現一次或者多次

\d+ - 匹配一次或者多次任意數字字元

.+ - 匹配一次或者多次任意字元

[xyz]+ - …

『』』

re_str =

'xa+y'

result = fullmatch(re_str,

'xay'

)print

(result)

# 練習:寫乙個正規表示式來檢測字串是否是合法的整數

re_str =

'[-+]?[1-9]\d*'

result = findall(re_str,

'+7895'

)print

(result)

print

(fullmatch(

'a\d'

,'aaaa345'))

print

(fullmatch(

'a',

'aaaa'

))

re_str = r'a.+b'

print

(findall(re_str,

'amnmb123bblkb'))

re_str = r'a.+?b'

print

(findall(re_str,

'amnmb123bblkb'

))

from re import fullmatch
『』』

分組就是將正規表示式中的某部分用()括起來看成乙個整體,然後進行整體的操作

在正規表示式中乙個()表示乙個分組

1)整體操作

『(\d[a-z])+』

2)整體重複

\m - 重複前面第m個分組匹配到的內容

『』』

print

(fullmatch(

'(\d[a-z])+'

,'23hsk90nmb'))

re_str = r'(\d)ab\1'

print

(fullmatch(re_str,

'789ab789'))

re_str = r'(\d)([a-z])=\2\1'

print

(fullmatch(re_str,

'341ab=ab341'

))

# 練習:寫乙個正規表示式,能夠匹配乙個字串,abc後面是三個任意數字,或者三個任意大寫字母

# 'abc827'、'abcknm'

re_str =

'abc([1-9]|[a-z])'

print

(fullmatch(re_str,

'abcknm'

))

re_str =

'\d\.[a-z]'

print

(fullmatch(re_str,

'89.hsk'))

print

(fullmatch(re_str,

'89mhsk'))

re_str =

'\d\+'

print

(fullmatch(re_str,

'8+'

))

from re import fullmatch, match, search, findall, split, sub

Day16正規表示式作業

1.使用者名稱匹配 要求 1.使用者名稱只能包含數字 字母 下劃線 2.不能以數字開頭 3.度在 6 到 16 位範圍內 re str a za z a za z 0 9 print fullmatch re str,a23456 密碼匹配 要求 1.不能包含 這些特殊符號 2.必須以字母開頭 3....

day16正規表示式作業

1.使用者名稱匹配 要求 1.使用者名稱只能包含數字 字母 下劃線 2.不能以數字開頭 3.度在 6 到 16 位範圍內 1.re str w result fullmatch re str,8 a 2.re str d result fullmatch re str,a22希宇 3 print f...

day16正規表示式作業

1.使用者名稱匹配 要求 1.使用者名稱只能包含數字 字母 下劃線 2.不能以數字開頭 3.度在 6 到 16 位範圍內 re str r a za z 0 9a za z print fullmatch re str,a784121liu 密碼匹配 要求 1.不能包含 這些特殊符號 2.必須以字母...