Удалите элементы в квадратной скобке строки из Python
Мне нужно удалить элементы в квадратных скобках строки. Однако я не могу добиться желаемых результатов.
Ниже приведен желаемый результат, который я должен получить:
Пример вывода
[[яблоко] .png -> [.png
[яблоко]]. png ->] .png
[[яблоко]]. png -> [] .png
[an] яблоко [adaykeeps]] [[доктор] away.png -> яблоко] [away.png
Ниже приведены методы, которые я использовал, но не смог получить требуемый результат:
Метод Regex
file = re.sub (r '(\ d * \ D + \ d *) \ s +', '', re.sub (r '{. +? # (\ d +). \ d +)}', r '( \ 1) ', файл));
SubString Метод
openbracket = file.find ('['); closebracket = file.find (']');
если len (файл)> closebracket: file = file [0: openbracket:] + file [closebracket + 1 ::]
Ответы
Вы можете сделать это с помощью регулярного выражения; ваше регулярное выражение должно соответствовать a, [за которым следует некоторое количество символов non [или ]до a ], и заменить эту строку ничем:
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
Этот код заменит []пустую строку ''; если это не желаемое поведение, измените *в регулярном выражении на +.