python语言里match()和search()的区别是什么啊

Python013

python语言里match()和search()的区别是什么啊,第1张

Match是从字符串的起始位置开始匹配,如果匹配成功的话,就返回第一个对象

Search工作方式与match比较相似,只要search从字符串的任意位置开始匹配,并返回第一个匹配的对象。

区别:Match()函数只检测RE是不是在string的开始位置匹配,search()会扫描整个string查找匹配换句话来讲,match()只有在0位置匹配成功的话才会返回,如果不是开始位置匹配成功的话,match()就返回none,这就是它们之间的区别。

Regex 对象有一个 findall() 方法,它会返回包含所查找字符串的所有匹配。这与 search() 方法明显不同,search() 将返回一个 Match 对象,其中包含被查找字符串中的 “ 第一次 ” 匹配文本。请看以下示例,注意区分:

运行结果:

如果调用 findall 的正则表达式不存在分组(比如上例),那么方法 findall() 将返回一个匹配字符串的列表,例如上例的 ['0591-83822032', '0591-83822033']。

如果调用 findall 的正则表达式存在分组,那么方法 findall() 将返回一个字符串元组的列表(每个分组对应一个字符串),请看下例:

运行结果: