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

举报
霍格沃兹测试开发 发表于 2023/02/24 12:46:38 2023/02/24
【摘要】 前言上篇文章我们讲解了Python re模块的简单使用,本篇文章我们将讲解re模块更高级的用法。 正则表达式量词符号与组 组的概念符号描述()在匹配规则中获取指定数据 贪婪与非贪婪匹配分为贪婪匹配与非贪婪匹配0次或多次属于贪婪模式通过?组合变成非贪婪模式 正则表达式-re模块的函数findall()查找字符串中所有(非重复)出现的正则表达式模式,并返回一个匹配列表语法示例:findall(...

前言

上篇文章我们讲解了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 football
result.group() : i like
result.group() : play
result.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')
messi
muller
  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模块的介绍就到这里了,后续我们将介绍其他模块的内容,敬请期待哈!

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。