为了账号安全,请及时绑定邮箱和手机立即绑定

用正则表达式替换值的 re 模块是什么?

用正则表达式替换值的 re 模块是什么?

月关宝盒 2023-02-22 15:28:05
好的,所以我在一个问题中寻找 2 个答案。我需要一个正则表达式,我需要一个正则表达式模块。首先是模块,它是用其他值替换某些值(由正则表达式捕获)的模块。就像我的输入是a=ba=b&c=da=b&c=d&e=f我应该用一些值替换 b,d,f。其次,给定输入的正则表达式是什么a=ba=b&c=da=b&c=d&e=f这是输入,我想不出任何数学 b、d、f 和其他值的正则表达式,如果?我需要一个正则表达式来用单个值替换 b、d、f。让我们说如果'HI'是单一的价值编辑:输入实际上是一个 URL 参数,我使用了 urlparse 然后是 urlparsed_data.query 编辑:输入[]也可以包含。喜欢a[]=b
查看完整描述

2 回答

?
杨__羊羊

TA贡献1943条经验 获得超7个赞

line = 'a=b&c=d&e=f' 
 re.findall(r'(\w+)=(\w+)', line)

输出

[('a', 'b'), ('c', 'd'), ('e', 'f')]

您将获得足够的信息来继续。

line = 'a[]=b&c=d'
re.findall(r'([^&]+)=([^&]+)', line)

输出 [('a[]', 'b'), ('c', 'd')]


查看完整回答
反对 回复 2023-02-22
?
尚方宝剑之说

TA贡献1788条经验 获得超4个赞

b假设您想用单个值d替换值,请尝试:fHI


import re

list1 = ['a=b', 'a=b&c=d', 'a[]=b&c=d&e=f', 'wrongurl']

for line in list1:

    if (re.match(r'([][\w]+=[^&=]+&)*[][\w]+=[^&=]+', line)):

        print(re.sub(r'=\w+', '=HI', line))

    else:

        print('Error: ' + line)

输出:


a=HI

a=HI&c=HI

a[]=HI&c=HI&e=HI

Error: wrongurl


查看完整回答
反对 回复 2023-02-22
  • 2 回答
  • 0 关注
  • 80 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信