原创

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

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://mysoft.blog.csdn.net/article/details/48226321

在前介绍的正则表达式里,提供了两个基本的操作函数: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 深圳

文章最后发布于: 2015-09-05 16:45:18
展开阅读全文
0 个人打赏
私信求帮助

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览