( W" f3 o& S3 H% _. k4 m1 {5 }* _# V( a5 w
import re : v: ?, D! x6 w+ H2 b, v) B! {% y X7 U+ L! ` r& d r
r=r"b\d+"& h, P" k& G* Z; |% p8 W1 _5 ?8 j
m=re.search(r,"a12b1233cd") 3 r2 U" v% A2 y% ~print(m) U+ d# \4 c, r( T+ V+ z* _# @2 @8 z8 ]- X' }! a
这样,结果就是b后面的连续数字& k. G7 Y& {4 e, q' ^
$ Q4 |. C1 I' a( V+ B9 L结果: B- f' f, w0 Q. E9 W" B% r4 X
8 P- h q0 B/ V+ S8 A $ M3 a' K# D) @0 U+ `3 g. A+ W 2 Q; M! \' ?& H& m# a$ u. y4 p字符"*"重复前面一个匹配字符零次或者多次🍉 $ j, B( ?- E% E“*" 与 "+"类似,但有区别,列如:1 D/ c7 ?, g. q! C y: c. M6 `
可见 r"ab+“匹配的是"ab”,但是r"ab “匹配的是"a”,因为表示"b"可以重复零次,但是”+“却要求"b"重复一次以上- o4 Z8 m2 J3 e6 ]- {
, m t! N) Y7 N' ?2 Q6 K; Y
/ Q7 |3 e; ]( ^9 X# w/ l. e* w! [/ ]$ E; G+ O$ Q4 g. ^
import re; D# Z) ~' M, I `1 Y5 c; Y% o0 n
8 F5 C" ?& x$ }$ ^( X0 T5 zr=r"ab+"0 W& y5 j' \/ e$ |7 s3 e' t% y; ^
m=re.search(r,"acabc")6 G/ z8 I% [' [$ D$ y5 ?3 n0 j
print(m) 8 z1 a2 l6 i& B8 l ( x0 P4 J4 T% _( Tr=r"ab*"( `0 B' T& b$ Q& }
m=re.search(r,"acabc") ) J/ z- Z- l- [6 E; |% sprint(m)$ \: H" l8 k/ u
结果: / h X" T* w/ O6 H( q1 s( K ) _! g: o8 r0 @1 k \" C/ z4 y" Z. m; a5 Z/ Y6 G
+ C ^9 V9 \3 c" Q- q/ p p1 d
字符"?"重复前面一个匹配字符零次或者一次🍉 9 T, d- G+ W, d7 O匹配结果"ab”,重复b一次 % r' Y; c0 X4 {* [6 B0 l % y+ f" f5 P* t) y* o4 @/ R) N0 s1 d1 M$ `
/ I; b% F/ {: }; o$ b! c. ]import re ! L# F/ M( l4 ^5 T& r) k/ Q* m . U5 f" p7 n" {: s/ Tr=r"ab?"1 v [, ?9 ]8 b& c
m=re.search(r,"abbcabc") 1 ?7 a, T; e1 ?. lprint(m) 8 w; @3 N/ j g) C% X 结果:% P& R3 m$ @) S3 c4 C" `) n
( u! q0 R5 n! f* E* \8 ]
! z, e' }& I, L$ e- {$ U7 e
4 B$ d2 H: Y o: q
特殊字符使用反斜杠"“引导,例如”\r"、"\n"、"\t"、"\"分别表示回车、换行、制表符号与反斜线自己本身 , `+ h% c8 e& u5 L/ o2 \3 f* [0 ^) \; F% u) o B1 ?: _
import re " ]2 J; B' G- {/ N; d$ l* @5 }/ D) B! V) U; ^' {
r=r"a\nb" Y7 }: R8 f7 Z7 [6 h
m=re.search(r,"ca\nbcaba")! L; R$ H' U- E. y
print(m) / X/ T9 v A' C" v# Y. O* [/ ~ 结果:' p8 E9 g/ f, G2 k' {# x
% U. K9 x5 H$ g# u$ T/ g
( c1 r6 j5 k. o. O9 x4 B7 M; \- ~7 a2 i4 V3 B! o/ Z; [9 J1 H
完整表🔍- D. V. |: m& ?% q: T8 Z. I
其实上面说这些都是比较基础,比较简单的,还有复杂一点的,都在这张表里. o5 L% b& g# A$ ~5 [2 c1 `; R
; d6 Q, M. ^/ _' P5 I
. n6 |* W8 O) s+ a% V! c; R 9 q; b ?+ h" X, o3 k- a# i match用法🤔3 V7 s, B+ j! s" ]! T% m
match用法😃 `: a8 k0 R/ n, t% s语法:re.match(pattern, string[, flags]) 4 i3 m( n% {4 H, a
' g* R; f9 W" ^( }2 t( I
从首字母开始开始匹配,string如果包含pattern子串,则匹配成功,返回Match对象,失败则返回None,若要完全匹配,pattern要以$结尾。! ^) L# K6 z, e& `5 Y l
( j9 V1 w9 c& z; z) e% ]8 `' _
#示例:' _( y" |" J' V' t! o H
name='张三'- O; K4 W D/ s( {/ @9 |
if re.match('张\w+',name):$ \2 I$ L4 c. J6 i
print('{},你好!'.format(name)) - g9 S# j" G8 }; g' F3 Y # 张三,你好!, b( v- B6 h5 T
输出结果:张三,你好3 z, j1 Y4 Y/ d! G9 [. L
* B. t/ p! x2 t7 }: a3 M
& I6 H( X1 [2 g0 y+ W
5 C" A2 B7 p. |张三:谁叫我? 4 @9 p& h! u. B- p( t& Y( C0 E% ?& C1 O) B
不开玩笑了,继续+ a A" N% |0 Z. {- D$ K" Z