ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

必备技能之python正则表达式(二)

2022-03-01 09:31:44  阅读:169  来源: 互联网

标签:... abc 匹配 re python 必备 正则表达式 group match


声明:本文乃“运维家”原创,转载请注明出处,更多内容请关注公众号“运维家”。

图片

主旨

上一篇文章中我们介绍了python部分常用的正则表达式,这一节我们就看看如何在python中进行使用,这里我们借助re模块来实现。

环境

linux 环境
python3.0+ 环境

PS:如果不知道如何在linux上安装python3.0以上的版本,在公众号“运维家”后台回复“103”,即可获取安装操作手册。

match

match() 函数试图从字符串的起始部分对模式进行匹配。如果匹配成功就返回一个匹配对象;如果匹配失败,就返回none,匹配对象的group()方法能够用于显示那个成功的匹配。

# 成功的匹配-示例1
>>> import re
>>> m = re.match('abc', 'abc')
>>> if m is not None:
...     m.group() 
... 
'abc'
>>> 

# 成功的匹配-示例2
>>> import re
>>> m = re.match('abc', 'abcd')
>>> if m is not None:
...     m.group()
... 
'abc'
>>>


# 失败的匹配
>>> import re   
>>> m = re.match('abc', 'nihaobc')
>>> if m is not None:
...     m.group()
... 
>>>

search

search()的工作方式与match()完全一致,不同之处在于search()会用它的字符串参数,在任意位置对给定正则表达式模式搜索第一次出现的匹配情况。

通过下面的例子可以看出search和match之间的差异

>>> import re
>>> m = re.match('abc', 'oooabcppp')
>>> if m is not None:
...     m.group()
... 
>>> import re
>>> m = re.search('abc', 'oooabcppp')
>>> if m is not None:
...     m.group()
... 
'abc'
>>>

从以上示例中我们可以看到,使用match的时候,是从左边第一个字符进行匹配,所以虽然我们的字符中确实包括了abc字样,但是由于不是左边第一个字符,所以没有匹配到。那么,当我们使用search的时候,他会按照从左往右的顺序,匹配在字符串中第一次出现的位置。

什么意思?你是说如果被匹配的字符串中有多个符合的内容,也只会匹配一个嘛?我们看看下面的示例就明白了。

>>> import re
>>> m = re.search('abc', 'oooabcpppabcd')
>>> if m is not None:
...      m.group()
... 
'abc'
>>>

从上面的示例中我们就知道答案了吧,确实只会匹配第一个。如果匹配到了,就结束了该次匹配。

匹配多个字符串

在上一节中,我们使用正则表达式的择一匹配符,下面我们就演示下如何在python使用该方法。

剩余内容请关注微信公众号 “运维家” ,回复 “105” 查看。

标签:...,abc,匹配,re,python,必备,正则表达式,group,match
来源: https://blog.csdn.net/ouyangzhenxin/article/details/123197515

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有