Python 使用regexp匹配我的字符串内容?

Python 使用regexp匹配我的字符串内容?,python,regex,python-2.7,Python,Regex,Python 2.7,我想我应该使用regexp来匹配文件中的内容 我想替换w=的所有序列,例如,我想实现的是很多 s.replace('w=99923123','') s.replace('w=23123','') s.replace('w=123','') 所以我想知道您是否可以建议一个与我的表达式匹配的regexp 更新 我尝试了显而易见的方法,似乎奏效了 >>> import re >>> s='m=2&w=3' >>> s=re.sub('w=

我想我应该使用regexp来匹配文件中的内容

我想替换
w=
的所有序列,例如,我想实现的是很多

s.replace('w=99923123','')
s.replace('w=23123','')
s.replace('w=123','')
所以我想知道您是否可以建议一个与我的表达式匹配的regexp

更新

我尝试了显而易见的方法,似乎奏效了

>>> import re
>>> s='m=2&w=3'
>>> s=re.sub('w=\d', '', s)
>>> s
'm=2&'

更新 然后你需要注意,如果这是一个更复杂的,我的正则表达式也匹配tw=123, 和tw=123a456,但不执行您想要的操作。相反,也许你根本不应该使用正则表达式(如果你有问题,然后使用正则表达式,你现在有两个问题,他们说)。 您可以尝试以下方法:

import urlparse
import urllib

s = 'w=123&q=456&tw=123&w=123abc&foo=bar&w=12'

# s here must be key=value&key=value only
parsed = urlparse.parse_qsl(s, keep_blank_values=True)
filtered = [ i for i in parsed if not (i[0] == 'w' and i[1].isdigit()) ]
s = urllib.urlencode(filtered)

值得注意的是,它只删除那些值仅由数字组成的w=值对。

我现在已经尝试了明显的
s=re.sub('w=\d','',s)
感谢您告诉我,我会这样做,但它只匹配一个数字。检查Antti的答案。s='m=2&w=32'怎么样?在结尾加上'+'像'w=\d+'谢谢你的帮助。只要抓住一次w=,就足够了。实际上,我正在使用它将基于数字ID的url重定向到基于名称的友好url,即/?所以我用这个正则表达式重定向。谢谢。我接受这两种解决方案,因为字符串中只会出现一个w=数字。我使用它将url从基于id的查询字符串重定向到更可读的url,即/?然后我传递查询字符串的其余部分。我认为这是一种很好的方法,可以清理一个混乱的url,将参数排列到目录分组中,其中everi w=digit成为唯一的//当然,如果两个区域具有相同的名称,这将不起作用。
import urlparse
import urllib

s = 'w=123&q=456&tw=123&w=123abc&foo=bar&w=12'

# s here must be key=value&key=value only
parsed = urlparse.parse_qsl(s, keep_blank_values=True)
filtered = [ i for i in parsed if not (i[0] == 'w' and i[1].isdigit()) ]
s = urllib.urlencode(filtered)