re匹配语法

  • Post author:
  • Post category:其他


re.match 从头开始匹配,只匹配第一个。

re.search 全局匹配。

re.findall 匹配所有以列表形式输出。

如果 s= a1s4ez5,通过re语法匹配数字。

match_res = re.match(’[0-9]’,s)

if match_res:

print(match_res.group()) 拿到匹配结果。

re模块

正则表达式就是字符串的匹配规则,在多数编程语言里都有相应的支持,python里对应的模块是re

常用的表达式规则

‘.’ 默认匹配除\n之外的任意一个字符,若指定flag DOTALL,则匹配任意字符,包括换行

‘^’ 匹配字符开头,若指定flags MULTILINE,这种也可以匹配上(r”^a”,”\nabc\neee”,flags=re.MULTILINE)





f

l

a

g

s

M

U

L

T

I

L

I

N

E

,

r

e

.

s

e

a

r

c

h

(

f

o

o

.

' 匹配字符结尾, 若指定flags MULTILINE ,re.search('foo.



























































f


l


a


g


s


M


U


L


T


I


L


I


N


E


,




r


e


.


s


e


a


r


c


h



(






















f


o


o


.





’,‘foo1\nfoo2\n’,re.MULTILINE).group() 会匹配到foo1



’ 匹配

号前的字符0次或多次, re.search(‘a*’,‘aaaabac’) 结果’aaaa’

‘+’ 匹配前一个字符1次或多次,re.findall(“ab+”,“ab+cd+abb+bba”) 结果[‘ab’, ‘abb’]

‘?’ 匹配前一个字符1次或0次 ,re.search(‘b?’,‘alex’).group() 匹配b 0次

‘{m}’ 匹配前一个字符m次 ,re.search(‘b{3}’,‘alexbbbs’).group() 匹配到’bbb’

‘{n,m}’ 匹配前一个字符n到m次,re.findall(“ab{1,3}”,“abb abc abbcbbb”) 结果’abb’, ‘ab’, ‘abb’]

‘|’ 匹配|左或|右的字符,re.search(“abc|ABC”,“ABCBabcCD”).group() 结果’ABC’

‘(…)’ 分组匹配, re.search(“(abc){2}a(123|45)”, “abcabca456”).group() 结果为’abcabca45’ groups() 可进行分组

‘\A’ 只从字符开头匹配,re.search(“\Aabc”,“alexabc”) 是匹配不到的,相当于re.match(‘abc’,“alexabc”) 或^

‘\Z’ 匹配字符结尾,同$

‘\d’ 匹配数字0-9

‘\D’ 匹配非数字

‘\w’ 匹配[A-Za-z0-9]

‘\W’ 匹配非[A-Za-z0-9]

‘s’ 匹配空白字符、\t、\n、\r , re.search(“\s+”,“ab\tc1\n3”).group() 结果 ‘\t’



版权声明:本文为kajvane原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。