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
이 코드는 []빈 문자열``; 이것이 원하는 동작이 아닌 경우 *정규식에서을 +.