2011-05-05 4 views
4

아포스트로피로 문자열을 분할하는 방법 '-?파이썬 : 분할 문자열 '및 -

re.split("['-]", "pete - he's a boy") 
+1

'[item.split (" '") 사항 String.split의 항목 (' - ')]'내가 생각한 것은 실제로 대답이 아니지만 ... –

+1

http://stackoverflow.com/questions/1059559/python-strings-split-with-multiple-separators – ninjagecko

+0

예상되는 결과는 무엇입니까? ? – NullUserException

답변

15

당신은 정규 표현식 모듈의 분할 기능을 사용할 수 있습니다 주어진 예를 들어

, 하지만 할 수 있습니다 :

다음

l = [x.split("'") for x in "pete - he's a boy".split('-')] 

그런 배열의 각 요소를 분할

우선 회 분할 - (세드릭 줄리안 용액 @ 효과적으로 동일하고 지능형리스트를 사용하여)

string.replace("-", "'").split("'") 
+0

첫 번째 적절한 대답, 1 –

+0

@Jakob Bowyer - OP가 "적합한 대답"을 알려주십시오. 자신을 앞서고 있습니까? ;) – viraptor

+1

작동하지 않습니다. 아래 답변 중 하나와 같은 문자를 이스케이프 처리해야합니다. – fceruti

0
>>> import re 
>>> string = "pete - he's a boy" 
>>> re.split('[\'\-]', string) 
['pete ', ' he', 's a boy'] 

희망이 도움이 :)

+0

먼저 다른 사람들의 답변을 확인하는 것이 좋습니다. @ 우리는 이미 적절한 재 표현을 제공했습니다. –

+0

죄송합니다. 필자가 글을 올렸을 때 아직 아무도 게시하지 않았다. 그러나 어쨌든, 그들의 대답은 오류입니다. – fceruti

+0

오류는 없습니다. –

5
string = "pete - he's a boy" 
result = string.replace("'", "-").split("-") 
print result 

['pete ', ' he', 's a boy'] 
+0

내 생각은 정확하게. – zeekay

+0

그게 귀여운 방법입니다. –

+1

정규 표현식을 사용하지 않으려면 D – zeekay

1

이 종류의 해키 느낌 : string = "pete - he's a boy"

+0

[약간 이전 답변] (http://stackoverflow.com/questions/5894392/python-split-string-by-and/5894465#5894465)과 동일합니다. –

1

0 스트링의 분할 방법을 사용하여 flattern이

print ([item for m in l for item in m ]) 

이 [ '피트', '그', 'SA 소년']

을 제공합니다 나열
0
import re 
string = "pete - he's a boy" 
print re.findall("[^'-]+",string) 

결과

['pete ', ' he', 's a boy'] 

.

당신은 전에도 spliting 후 각 항목 이후에는 빈을하지 않으 :

import re 
string = "pete - he's a boy" 
print re.findall("[^'-]+",string) 
print re.findall("(?!)[^'-]+(?<!)",string) 

결과

['pete', 'he', 's a boy']