问题描述
我需要删除字符串方括号内的元素。但是,我无法获得预期的结果。
以下是我需要获得的期望输出:
输出示例
[[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
此代码将[]
替换为空字符串``;如果这不是所需的行为,则将正则表达式中的*
更改为+
。