使用regexp匹配字符串内容?

2024-04-25 11:54:59 发布

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

我想我应该使用regexp来匹配文件中的内容。你知道吗

我想替换w=<DIGIT>的所有序列,例如,我想实现的是多个

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&'

Tags: 文件方法importre内容表达式序列建议
1条回答
网友
1楼 · 发布于 2024-04-25 11:54:59
import re
pat = re.compile('w=[0-9]+')  # or you can use \d+
s = pat.sub('', s)

更新

然后你需要注意,如果这是一个更复杂的正则表达式,我的正则表达式也匹配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=value对。你知道吗

相关问题 更多 >