从Python移除字符串方括号中的元素

问题描述

我需要删除字符串方括号内的元素。但是,我无法获得预期的结果。

以下是我需要获得的期望输出

输出示例

[[apple] .png-> [.png

[apple]]。png->] .png

[[apple]]。png-> [] .png

[an] apple [adaykeeps]] [[doctor] away.png-> apple] the [away.png

以下是我使用过但无法获得所需输出方法

正则表达式方法

file = re.sub(r'(\ d * \ D + \ d *)\ s +','',re.sub(r'{。+?#(\ d +)。\ d +)}', r'(\ 1)',file));

SubString方法

openbracket = file.find('['); closebracket = file.find(']');

如果len(file)> closebracket: file = file [0:openbracket:] + file [closebracket + 1 ::]

解决方法

您可以使用正则表达式执行此操作;您的正则表达式需要匹配[,后跟一些非[]字符,直到],然后将该字符串替换为空:

import re

strings = ['[[apple].png','[apple]].png','[[apple]].png','[an]apple[adaykeeps]]the[[doctor]away.png']

for s in strings:
    name = re.sub(r'\[[^][]*\]','',s)
    print(name)

输出:

[.png
].png
[].png
apple]the[away.png

此代码将[]替换为空字符串``;如果这不是所需的行为,则将正则表达式中的*更改为+