Python에서 문자열의 대괄호에있는 요소 제거

Oct 22 2020

문자열의 대괄호 안에있는 요소를 제거해야합니다. 그러나 원하는 결과를 얻을 수 없습니다.

아래는 내가 얻는 데 필요한 원하는 출력입니다.

출력 예

[[사과] .png-> [.png

[사과]]. png->] .png

[[사과]]. png-> [] .png

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

다음은 내가 사용한 방법이지만 필요한 출력을 얻을 수 없습니다.

정규식 방법

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

SubString 메서드

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

len (file)> closebracket : file = file [0 : openbracket :] + file [closebracket + 1 ::] 인 경우

답변

2 Nick Oct 22 2020 at 11:23

정규식으로이 작업을 수행 할 수 있습니다. 정규식은 a [뒤에 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

이 코드는 []빈 문자열``; 이것이 원하는 동작이 아닌 경우 *정규식에서을 +.