Python里面search和match的区别
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python里面search和match的区别相关的知识,希望对你有一定的参考价值。
match()函数只检测RE是不是在string的开始位置匹配,
search()会扫描整个string查找匹配;
也就是说match()只有在0位置匹配成功的话才有返回,
如果不是开始位置匹配成功的话,match()就返回none。
例如:
print(re.match(\'super\', \'superstition\').span()) 会返回(0, 5)
而print(re.match(\'super\', \'insuperable\')) 则返回None
search()会扫描整个字符串并返回第一个成功的匹配
例如:print(re.search(\'super\', \'superstition\').span())返回(0, 5)
print(re.search(\'super\', \'insuperable\').span())返回(2, 7)
其中span函数定义如下,返回位置信息。
span([group]):
返回(start(group), end(group))。
效果如下图:
参考技术A match和search都是测试正则表达式与字符串是否匹配,不同的是,match要求字符串的第一个字符就能匹配上正则表达示,而search则不同,如果字符串开头不能匹配,即会继续往后匹配,直接匹配成功或者到字符串结束。本回答被提问者和网友采纳 参考技术B这是正则表达式里面的函数:
match()函数只检测RE是不是在string的开始位置匹配,search()会扫描整个string查找匹配;
也就是说match()只有在0位置匹配成功的话才有返回,如果不是开始位置匹配成功的话,match()就返回none。
例如:
print(re.match('super', 'superstition').span()) 会返回(0, 5)
而print(re.match('super', 'insuperable')) 则返回None
search()会扫描整个字符串并返回第一个成功的匹配:
例如:print(re.search('super', 'superstition').span())返回(0, 5)
print(re.search('super', 'insuperable').span())返回(2, 7)
其中span函数定义如下,返回位置信息:
span([group]):
返回(start(group), end(group))。
Search工作方式与match比较相似,只要search从字符串的任意位置开始匹配,并返回第一个匹配的对象。
Match()函数只检测RE是不是在string的开始位置匹配,search()会扫描整个string查找匹配;换句话来讲,match()只有在0位置匹配成功的话才会返回,如果不是开始位置匹配成功的话,match()就返回none,这就是它们之间的区别。
以上是关于Python里面search和match的区别的主要内容,如果未能解决你的问题,请参考以下文章
python题目-----search()和match()的区别