Python - 删除数组中 link 的一部分

Python - delete part of link in array

我有一个数组中的链接列表,例如

results = [link1/1254245,
           'q%(random part)cache:link2/1254245& (random part) Dclnk',
           'link3/1254245]

link = http://www.whatever.com.

我想用任何东西替换术语 q%3(random part)cache&(random part)Dclnk,以便 "clean" link2 被 "cut" 排除在外"clean" 个链接。随机部分的内容和长度总是变化的。 q%3 :& Dclnk 保持不变。

我该怎么做?到目前为止,我找不到直接的答案。

您可以通过 re.sub 和列表理解来实现。

>>> l = ['link1/1254245', 'q%(random part)cache:link2/1254245& (random part) Dclnk', 'link3/1254245']
>>> [re.sub(r'q%[^(]*\([^()]*\)cache:|&\s*\([^()]*\)\s*Dclnk', r'', i) for i in l]
['link1/1254245', 'link2/1254245', 'link3/1254245']

[^()]* 匹配任何字符但不匹配 () 零次或多次。指定 | 变更运算符以使用多个模式。