用reggex替换值的re模块是什么?

2024-06-25 23:21:16 发布

您现在位置:Python中文网/ 问答频道 /正文

好的,我在一个问题中寻找两个答案。我需要一个正则表达式,我需要一个正则表达式模块。 首先是模块,它是用其他值替换somevalue(由regex捕获)的模块。 就像我的输入是

a=b
a=b&c=d
a=b&c=d&e=f

我应该用一些值替换b,d,f。 其次,给定输入的正则表达式是什么

a=b
a=b&c=d
a=b&c=d&e=f

这是输入,我想不出有哪个正则表达式可以匹配b,d,f和其他值,如果?我需要一个正则表达式,用一个值替换b,d,f。假设单个值为“HI”

编辑:输入实际上是一个URL参数,我使用了urlparse,然后是urlparsed_data.query 编辑:输入也可以包含[]。像a[]=b


Tags: 模块答案url编辑data参数hiquery
2条回答
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')]

假设要用单个值HI替换值bdf,请尝试:

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

相关问题 更多 >