python 中 re.match 和 re.search用法

Posted 小鲨鱼2018

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 中 re.match 和 re.search用法相关的知识,希望对你有一定的参考价值。

 

001、re.match

>>> re.match("ab", "abcdefgab")   ## 在字符串abcdefgab中查找字符串ab, 返回索引
<re.Match object; span=(0, 2), match=\'ab\'>
>>> re.match("xy", "abcdefgab")   ## 如果查找字符串不存在,返回none
>>> re.match("cd", "abcdefgab")   ## 如果查找字符串不在开头,返回none

 

>>> re.match(r"ab", "abcdefgab")     ## 字符r表示原始字符串,不对特殊字符进行转义
<re.Match object; span=(0, 2), match=\'ab\'>
>>> re.match(r"xy", "abcdefgab")

 

002、re.search

>>> re.search("ab", "abcdefgab")        ## 在字符串abcdefgab中查找字符串ab
<re.Match object; span=(0, 2), match=\'ab\'>
>>> re.search("xy", "abcdefgab")        ## 查找的字符串不存在, 返回none
>>> re.search("ab", "cdefgab")          ## 查找的字符串不在开头,也返回索引
<re.Match object; span=(5, 7), match=\'ab\'>

 

Python RE模块中search和match的区别

参考技术A 这是正则表达式里面的函数:
1.
match()函数只检测re是不是在string的开始位置匹配,search()会扫描整个string查找匹配;
2.
也就是说match()只有在0位置匹配成功的话才有返回,如果不是开始位置匹配成功的话,match()就返回none。
3.
例如:
print(re.match('super',
'superstition').span())

会返回(0,
5)
而print(re.match('super',
'insuperable'))

则返回none
4.
search()会扫描整个字符串并返回第一个成功的匹配:
例如:print(re.search('super',
'superstition').span())返回(0,
5)
print(re.search('super',
'insuperable').span())返回(2,
7)
5.
其中span函数定义如下,返回位置信息:
span([group]):
返回(start(group),
end(group))。
参考技术B 一、解释:
  match()函数只检测RE是不是在string的开始位置匹配
  search()会扫描整个string查找匹配,会扫描整个字符串并返回第一个成功的匹配
  也就是说match()只有在0位置匹配成功的话才有返回,如果不是开始位置匹配成功的话,match()就返回none
二、例子:
  match():
  
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)

以上是关于python 中 re.match 和 re.search用法的主要内容,如果未能解决你的问题,请参考以下文章

re模块正则表达式

python 中 re.match 和 re.search用法

Python RE模块中search和match的区别

Python中re.match与re.search的使用方法详解

python re模块

Python3中正则模块re.compilere.match及re.search