여러개 문자를 기준으로 문자열을 자르는 방법이 있나요?
조회수 35115회
아무리 찾아봐도 공백문자 기준으로 자르기, 앞 뒤 공백문자 제거하기 이런거만 나오고 여러개 문자를 기준으로 문자열을 자르는건 안나오네요.
mystr = Hey, you - what are you doing here!?
-> ['hey', 'you', 'what', 'are', 'you', 'doing', 'here']
처럼 공백 + 특수문자 ,-?!
를 기준으로 문자열을 다 나눠주고 싶습니다.
근데 파이썬 str.split()은 인자 하나만 받네요. 어떻게 하면 되나요?
1 답변
-
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()는 인자 하나만을 받기 때문에 여러 번 호출해야한다는 단점이 있습니다.
댓글 입력