2 v. K4 D! r ]; B2 A& @% p$ k结果: - H, g" c v4 n. F3 g$ h & o7 B' o0 o0 d + `8 t: I: t5 k/ t6 g7 h. o& R4 S$ L$ `) c
可以看到,搜索到了连续值“567”. q v2 b! y' P+ {0 k, W
) q2 J0 n& s O4 s! [ c 字符"+"重复前面一个匹配字符一次或者多次🍉 2 A2 |' O$ m4 N , l1 V( [0 a' h$ E4 F m* V9 q z" ~2 r2 a' j2 K% b( J
import re1 S! H" ^& q; j) J) g! h
7 V% W* e5 B# F0 U7 J
r=r"b\d+" ; H7 O$ y0 W5 C/ @# e; lm=re.search(r,"a12b1233cd")8 t( E( Y8 d3 c, c% B2 x
print(m)4 d0 n, P2 @: ?, @6 Z6 K) u A
5 G! |2 J3 O! ]# d' K. [
这样,结果就是b后面的连续数字8 Q7 ~* ]6 p* E: |# Z& _
& e6 @* E2 f" S Z5 y4 j2 q [9 H3 q9 { ]3 u' t: V6 D
/ U# i$ w1 n# w6 X) i% {) ?" a
import re; {4 X+ G+ y, T( E7 r
- w; v- ]3 i3 E6 q g$ |
r=r"ab+"9 Q- ~6 j5 p( H
m=re.search(r,"acabc") # B. P! u" ^- m' p. ~" g7 V4 b5 bprint(m)6 Z% J1 _% w- B0 u
0 J) D/ l/ \: E1 I6 p5 h2 [1 e- Er=r"ab*"8 o9 ]0 `: S2 V. t7 c; |
m=re.search(r,"acabc")1 f% g& O- a6 h- e
print(m) 9 J. a/ o6 W, B8 w, H$ x 结果:% _8 M, z& A, X! g
& K% T9 e4 j) {+ F7 {/ w Q$ l! i# z" e0 h
+ |. v" a& T Y/ M字符"?"重复前面一个匹配字符零次或者一次🍉% w+ g2 h5 b& z: r
匹配结果"ab”,重复b一次 9 I' h2 z- z- z+ r6 Y; e1 ^6 S- G. ?) p: |( Y
7 J, g5 F; `* a2 D* u' U, K6 @$ D, {- w4 v7 E. G5 k; W/ R/ o8 i
import re6 L. ]: H0 o6 _' {" \# a2 g
: j2 R, M% \" ^- P
r=r"ab?" 8 X7 O6 f$ Z+ S3 Ym=re.search(r,"abbcabc") ; \$ }! u* }9 y/ H0 gprint(m)4 g% |; Q( h4 z5 ^+ {0 C
结果: & E. ?3 O# _- F& Q* u ! B6 h' Y/ C, ~: ]' y8 A 2 L! U1 c+ {0 M- F# l1 V0 K7 z 7 K' L9 n5 u3 t, H" }- H$ a: E特殊字符使用反斜杠"“引导,例如”\r"、"\n"、"\t"、"\"分别表示回车、换行、制表符号与反斜线自己本身; f# Q9 n4 Y& [, o# u
6 `& ?1 c" q0 W0 kimport re + G, V( `) ?" f8 s; w+ h: i; u 3 k3 ^. c/ c' A; T, n; R6 X- Kr=r"a\nb" $ N$ s) J |( e0 ?7 B) Rm=re.search(r,"ca\nbcaba")- u: b' u w% U& g
print(m)* Q' C; d' l! m$ G/ `9 |3 d
结果:, A% I. I; f. ^+ V% c( r5 i& v" }
6 r) b( z# N- W8 N
$ R- r6 I# i0 @4 \6 `5 V / Q4 o5 e; A. \: v% p' t/ { 完整表🔍5 E. J v7 w. x
其实上面说这些都是比较基础,比较简单的,还有复杂一点的,都在这张表里. n" p7 Q! S$ l" p; p
% P! P, X* R8 l" e
v% T. |/ J3 {" |! }" F 1 X1 w/ I q5 d& i, B5 j match用法🤔 ( C: G4 T/ l/ J7 l* J6 N5 {2 E/ {match用法😃 ! h* W! G* r* S f* l0 {: N1 h( Q语法:re.match(pattern, string[, flags]) 9 c, Q' N# W7 ?/ V: Y$ I0 f8 o) W( {4 r k
从首字母开始开始匹配,string如果包含pattern子串,则匹配成功,返回Match对象,失败则返回None,若要完全匹配,pattern要以$结尾。 4 N. T' V1 y8 @0 i) M- U. L) G- X& B$ {9 Q7 a: S- D9 \- ?1 y# O
#示例:5 Q: E$ X: a8 g$ W
name='张三' ( B8 @. V0 y. f! B Qif re.match('张\w+',name): ' u( O8 ~8 N( F2 A( P/ \1 z B8 \ print('{},你好!'.format(name))5 f! } r8 N# s8 ?8 g5 `2 w, B! W6 o
# 张三,你好! . Y/ ~8 G1 E+ G( M) ]( t# ~9 I输出结果:张三,你好2 L( E$ m2 x3 [# p. x. G
& m- u. Y& R$ b2 @
, ~6 d& R$ m- I3 u& O# a$ @8 _
( j R" T+ [8 i4 {" g1 H% N张三:谁叫我?# b, d5 M) O2 F+ `- |
( ~3 e8 h! C+ M! U
不开玩笑了,继续 E/ |$ k* B( i& w4 v$ R" N* r
9 G/ [5 d! V! ?8 D$ r# N
总的来说,match就是 8 G, ~8 _/ k4 _" g, H7 W4 L/ H5 R% u 1 m3 d* b+ O' w, B返回匹配的match对象0 p6 _0 Y$ F. }2 Y
默认从给定字符串的开头开始匹配、即使正则表达式没有用^声明匹配开头! ]- x" H' v7 [ K+ R
match对象🍊 4 I# S! M0 s, ^# YMatch对象的几个属性: / Z) |: K% \9 m/ F( B6 F9 E( w