3.2.5.3 search()函数和match()函数区别

在前介绍的正则表达式里,提供了两个基本的操作函数:search()match()。这两个基本的函数都是匹配正则表达式的字符串,但它们之间去匹配的模式是有一些区别的,re.match是给出的字符串的头部开始匹配,匹配成功就结束了;而re.search是从给出的字符串头部开始,只要任何位置匹配成功都找出来,这种模式跟Perl语言里缺省方式一致。

例子:

print('search() vs match()')

match = re.match('c', 'abcd')

if match:

    print(match)

else:

    print('no match')

 

match = re.search('c', 'abcd')

if match:

    print(match)

else:

    print('no search')

结果输出如下:

search() vs match()

no match

<_sre.SRE_Match object; span=(2, 3), match='c'>

 

search也可以使用正则表达式的‘^’来限定从字符串的头部进行匹配:

match = re.search('^c', 'abcd')

if match:

    print(match)

else:

    print('no search')

在这个例子里,就没有找到相应的c字符串。同时,在多行模式之下,match只匹配第一行的首部开始,但search是匹配每一行的首部,例子如下:

match = re.match('c', 'abcd\ncde', re.M)

if match:

    print(match)

else:

    print('no match')

match = re.search('^c', 'abcd\ncde', re.M)

if match:

    print(match)

else:

    print('no search')

结果输出如下:

no match

<_sre.SRE_Match object; span=(5, 6), match='c'>

 

 

蔡军生 QQ:9073204 深圳

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

caimouse

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值