# 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.必須以字母...