使用Python regex替换字符串中的多个变量值

2024-04-27 00:49:26 发布

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

我有一个字符串,看起来像这样:

1080p [2.1GB] 720p [1.3GB] 480p [500MB]

在Python中,我想用,替换所有的[x]。我试过这个代码:

import re
s1 = '1080p [2.1GB] 720p [1.3GB] 480p [500MB]'
s2 = re.sub("[(.*?)]", ", ", s1)

但是,我得到如下输出:1080p [2, 1GB] 720p [1, 3GB] 480p [500MB]。你知道吗

相反,我想获得类似1080p, 720p, 480p的东西。你知道吗


Tags: 字符串代码importres2gbs1
2条回答

您需要转义括号并使用原始字符串:

s2 = re.sub(r"\[(.*?)\]", ", ", s1)

请注意,在character类之外,这些符号.^$*+?()[{\|应该转义以匹配字面意义。你知道吗

这是a demo

如果不打算使用[...]中的内容,请删除圆括号。你知道吗

s2 = re.sub(r"\[.*?\]", ", ", s1)

要获得“更干净”的字符串,可以使用更复杂的regex和strip()

import re
s1 = '1080p [2.1GB] 720p [1.3GB] 480p [500MB]'
s2 = re.sub(r"\s*\[.*?\]", ",", s1)
print s2.strip(' ,')

输出another demo1080p, 720p, 480p

您可以使用re.split。你知道吗

>>> s1 = '1080p [2.1GB] 720p [1.3GB] 480p [500MB]'
>>> ', '.join(i for i in re.split(r'\s*\[[^\]]*\]\s*', s1) if i)
'1080p, 720p, 480p'

相关问题 更多 >