从 Python 中删除字符串方括号中的元素
Remove elements in the square bracket of a string from Python
我需要删除字符串方括号内的元素。但是,我无法得到想要的结果。
下面是我需要得到的输出:
输出示例
[[苹果].png -> [.png
[苹果].png -> .png
[[苹果]].png -> [].png
[an]apple[adaykeeps]]the[[doctor]away.png -> apple]the[away.png
以下是我使用过但无法获得所需输出的方法:
正则表达式方法
file = re.sub(r'(\d*\D+\d*)\s+','',re.sub(r'{.+?#(\d+). \d+)}',r'(\1)',文件));
子字符串方法
开括号=file.find('[');
closebracket = file.find(']');
if 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
此代码会将 []
替换为空字符串 ``;如果这不是所需的行为,请将正则表达式中的 *
更改为 +
.
我需要删除字符串方括号内的元素。但是,我无法得到想要的结果。
下面是我需要得到的输出:
输出示例
[[苹果].png -> [.png
[苹果].png -> .png
[[苹果]].png -> [].png
[an]apple[adaykeeps]]the[[doctor]away.png -> apple]the[away.png
以下是我使用过但无法获得所需输出的方法:
正则表达式方法
file = re.sub(r'(\d*\D+\d*)\s+','',re.sub(r'{.+?#(\d+). \d+)}',r'(\1)',文件));
子字符串方法
开括号=file.find('['); closebracket = file.find(']');
if 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
此代码会将 []
替换为空字符串 ``;如果这不是所需的行为,请将正则表达式中的 *
更改为 +
.