【问题标题】:Whats the re module for replacing values with reggex?用正则表达式替换值的 re 模块是什么?
【发布时间】:2020-10-27 09:23:42
【问题描述】:

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

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 和其他值的正则表达式 if 吗?我需要一个正则表达式来用单个值替换 b,d,f。如果'HI'可以说单个值

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

【问题讨论】:

  • 输入的其实是一个URL,
  • this 有帮助吗?
  • 是的,它现在可以正确提取我只需要将 =(\w) 替换为 =(myvalue),我应该使用哪个函数
  • 你可以使用re.sub()

标签: python python-3.x regex python-2.7 re


【解决方案1】:
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')]

【讨论】:

  • 你的方法也可以,但是需要太多的代码来重新修改imgur.com/a/9kFPpTHimgur.com/a/T4PPxKD,现在我正在为你打勾
  • 另外你回答不支持[]标签,比如如果输入是r'a[]=b&c=d'它不能给出输出('a[]', b)。更新你的答案好吗?,如果它也接受[],我也会接受作为答案
  • 它将匹配除 & 之外的任何内容。如果要排除任何内容,请将其放在 [ 和 ] 之间。
【解决方案2】:

假设您想用单个值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

【讨论】:

  • 好方法好
猜你喜欢
  • 2023-02-07
  • 1970-01-01
  • 2018-01-16
  • 2014-02-23
  • 2020-10-10
  • 2012-02-12
  • 2016-10-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多