如何用python正则表达式

在做接口的时候,上个接口返回的数据做为下一个接口的参数,这个时候我们可以用到正则表达式进行提取

正则表达式

正则表达式(regular expression)描述了一种字符串匹配的模式,可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等。

正则表达式常用字符
在这里插入图片描述
re模块
在python语言中正则表达式是通过re模块进行实现的

re模块常用方法
re.match(pattern, string, flags=0)

# match用法
re.match(pattern, string, flags=0)

a = 'foo'
b= 'foo '
m = re.match(a,b)   # 模式匹配字符串,匹配就返回信息,不匹配就返回None,如果从开始匹配,匹配到就返回。
print(m)
if m is not None:   # 如果匹配,就返回匹配内容
    print(m.group())

执行结果:

<re.Match object; span=(0, 3), match='foo'>
foo

group()表示返回匹配对象

groups()表示返回包含唯一或者全部的元祖形式

search(pattern, string, flags=0)

# search用法
# search(pattern, string, flags=0)
a = 'foo'
b= 'seafood '
m = re.search(a,b)   # 搜索匹配字符串,匹配就返回信息,不匹配就返回None
print(m)
if m is not None:   # 如果匹配,就返回匹配内容
    print(m.group())

执行结果:
<re.Match object; span=(3, 6), match='foo'>
foo

match()和search区别
re.match只匹配字符串的开始,如果字符串开始不符合正则表达式,则匹配失败,函数返回None;而re.search匹配整个字符串,直到找到一个匹配。

findall(pattern, string, flags=0)

# findall用法
# re.findall(pattern, string, flags=0)
a = 'sea foo'
b= 'sea food '
m = re.findall(a,b)     # 进行匹配,发现匹配的返回一个列表,如果没有找到匹配的,则返回空列表
print(m)


代码结果:
['sea foo']

finditer(pattern, string, flags=0)

# finditer用法
# finditer(pattern, string, flags=0)
b= 's3eaf1oo2d '
m = re.finditer(r'\d',b)    # 返回内容存在一个迭代器中
for i in m:
    print(i.group())

代码结果:
3
1
2

sub(pattern, repl, string, count=0, flags=0)
subn(pattern, repl, string, count=0, flags=0)

# sub 和subn的用法
# sub(pattern, repl, string, count=0, flags=0)
# subn(pattern, repl, string, count=0, flags=0)
a = 'Anjing is  a test'
b = 'exploit'
m = re.sub('test',b,a)  # 搜索和替换,返回替换内容
m1 = re.subn('test',b,a)    # 搜索和替换,返回替换内容+替换总数字
print(m)
print(m1)

代码结果:
Anjing is  a exploit
('Anjing is  a exploit', 1)

两者区别,subn返回比sub多一个替换总数字

split(pattern, string, maxsplit=0, flags=0)

# split用法
# split(pattern, string, maxsplit=0, flags=0)
a = 'test1:test2:test3'
m = re.split(':',a) # 已:进行分割,并返回分割数据已列表展示
print(m)

代码结果:
['test1', 'test2', 'test3']

点赞关注~~了解更多,加入我们。642830685,免费领取最新软件测试大厂面试资料和Python自动化、接口、框架搭建学习资料!技术大牛解惑答疑,同行一起交流。

在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值