美文网首页linux运维
必备技能之python正则表达式(二)

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

作者: 运维家 | 来源:发表于2022-03-01 09:28 被阅读0次

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

    主旨

    上一篇文章中我们介绍了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的时候,他会按照从左往右的顺序,匹配在字符串中第一次出现的位置。

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

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

    相关文章

      网友评论

        本文标题:必备技能之python正则表达式(二)

        本文链接:https://www.haomeiwen.com/subject/ofddrrtx.html