写点什么

软件测试|带你了解 Python 正则表达式模块(二)

  • 2023-11-07
    北京
  • 本文字数:1276 字

    阅读完需:约 4 分钟

前言

上篇文章我们讲解了 Python re 模块的简单使用,本篇文章我们将讲解 re 模块更高级的用法。

正则表达式量词符号与组


组的概念

贪婪与非贪婪

匹配分为贪婪匹配与非贪婪匹配


  • 0 次或多次属于贪婪模式

  • 通过?组合变成非贪婪模式

正则表达式-re 模块的函数

  1. findall()查找字符串中所有(非重复)出现的正则表达式模式,并返回一个匹配列表语法示例:


findall(pattern, string [,flags])
复制代码


示例如下:


import re
sentence = 'hello muller, where are you from'print(re.findall('from\Z', sentence))
print(re.findall('ffrom\Z', sentence))
--------------------------------输出结果如下:['from'][]
复制代码


  1. search()使用可选标记搜索字符串中第一次岀现的正则表达式模式。如果匹配成功,则返回匹配对象;如果失败,则返回 None 语法示例:


search(pattern, string, flags=0)
复制代码


示例如下:


import re
sectence = 'i like play football'result = re.search('(.*) (.*?) (.*)',sectence)if result: print('result.group() :',result.group()) print('result.group() :',result.group(1)) print('result.group() :',result.group(2)) print('result.group() :',result.group(3))else: print('no match!')
------------------------------------------输出结果如下;result.group() : i like play footballresult.group() : i likeresult.group() : playresult.group() : football
复制代码


  1. group()与 groups()


  • group(num)返回整个匹配对象,或者编号为 num 的特定子组

  • groups():返回一个包含所有匹配子组的元组(如果没有成功匹配,则返回一个空元组)


代码示例如下:


import re
sectence = 'hello messi, i am muller'result = re.search('hello (.*), i am (.*)', sectence)print(result.groups())print(result.group(1))print(result.group(2))-----------------------输出结果如下:('messi', 'muller')messimuller
复制代码


  1. split()正则替换根据正则表达式的模式分隔符,split 函数将字符串分割为列表,然后返回成功匹配的列表,分隔最多操作 max 次(默认分割所有匹配成功的位置)语法如下:


split(pattern, string, max=0)
复制代码


示例如下:


import re
s = "Long live the PRC"result1 = re.split("\s", s)print(result1)
result2 = re.split("\s", s, 3) # 通过指定 maxsplit 参数来控制出现次数print(result2)
result3 = re.split("USA", s)print(result3)---------------------------------输出结果如下:['Long', 'live', 'the', 'PRC']['Long', 'live', 'the', 'PRC']['Long live the PRC']
复制代码


  1. match()使用带有可选的标记的正则表达式的模式来匹配字符串。如果匹配成功,就返回匹配对象;如果失败,就返回 None 语法如下:


match(pattern, string, flags=0)
复制代码


示例如下:


import re
data = 'hello world'result = re.match('hello', data)print(result.group())------------------输出结果如下:hello
复制代码

总结

本文介绍了 re 模块的几个常用函数,对 Python 内置的 re 模块的介绍就到这里了,后续我们将介绍其他模块的内容,敬请期待哈!


获取更多技术资料,请点击!

用户头像

社区:ceshiren.com 微信:ceshiren2021 2019-10-23 加入

微信公众号:霍格沃兹测试开发 提供性能测试、自动化测试、测试开发等资料,实时更新一线互联网大厂测试岗位内推需求,共享测试行业动态及资讯,更可零距离接触众多业内大佬。

评论

发布
暂无评论
软件测试|带你了解Python正则表达式模块(二)_霍格沃兹测试开发学社_InfoQ写作社区