파이썬 문자열에서 특정 단어를 삭제하고 싶습니다.
조회수 7382회
list = [(10)안녕하세요,
오늘은 날씨가(추워43423)
(apple)매우 춥네요(cold)]
이런식으로 문자열 리스트가 있는데요. 여기서 괄호 포함해서 안에 든 모든 문자열을 삭제하고 싶습니다.
re 모듈써서 아래 코드처럼 작성해봤는데요.
import re
a_list = ['(10)안녕하세요', '오늘은 날씨가(추워43423)', '(apple)매우 춥네요(cold)']
p = re.compile('(.)')
for i in range(len(a_list)):
real_text = re.sub(p, "", a_list[i])
a_list[i] = real_text
print(a_list)
저는 결과물이 ['안녕하세요', '오늘은 날씨가', '매우 춥네요']를 예상했는데요.
결과물은 ["", "", ""]입니다.
제가 생각한대로 나오게 할려면 어떻게 해야 될까요?
1 답변
-
LAZY QUANTIFIER(*?)를 이용해보세요
import re a_list = ['(10)안녕하세요', '오늘은 날씨가(추워43423)', '(apple)매우 춥네요(cold)'] p = re.compile('\(.*?\)') for i in range(len(a_list)): real_text = re.sub(p, "", a_list[i]) a_list[i] = real_text print(a_list)
-
(•́ ✖ •̀)
알 수 없는 사용자
- 감사합니다. 저런게 있는줄 몰라서 혼자 삽질하고 있었는데 덕분에 한방에 해결했네요 임현준 2017.12.8 17:04
- 정규표현식을 테스트해보는데에는 https://regex101.com/ 를 이용해보세요. capture되는 부분을 바로 보여줘서, 저는 패턴을 만들때 자주 사용합니다. 알 수 없는 사용자 2017.12.8 17:08
-
댓글 입력