여러개 문자를 기준으로 문자열을 자르는 방법이 있나요?


아무리 찾아봐도 공백문자 기준으로 자르기, 앞 뒤 공백문자 제거하기 이런거만 나오고 여러개 문자를 기준으로 문자열을 자르는건 안나오네요.

mystr = Hey, you - what are you doing here!? -> ['hey', 'you', 'what', 'are', 'you', 'doing', 'here'] 처럼 공백 + 특수문자 ,-?!를 기준으로 문자열을 다 나눠주고 싶습니다.

근데 파이썬 str.split()은 인자 하나만 받네요. 어떻게 하면 되나요?

  • 2016년 01월 19일에 작성됨

조회수 1447


1 답변


좋아요
0
싫어요
채택취소하기

1. re.findall(pattern, string, flags=0)을 쓰는 방법

import re
DATA = "Hey, you - what are you doing here!?"
print re.findall(r"[\w']+", DATA)
# Prints ['Hey', 'you', 'what', 'are', 'you', 'doing', 'here']

2. re.split(pattern, string[, maxsplit=0])을 쓰는 방법

import re
DATA = "Hey, you - what are you doing here!?"
print re.split('\W+', DATA) # ['Hey', 'you', 'what', 'are', 'you', 'doing', 'here', '']

3. replace()한 후 split()하는 방법

'a;bcd,ef g'.replace(';',' ').replace(',',' ').split() = ['a', 'bcd', 'ef', 'g']

모듈을 import할 필요 없지만 replace()는 인자 하나만을 받기 때문에 여러 번 호출해야한다는 단점이 있습니다.

  • 2016년 01월 19일에 작성됨

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close