2016-11-11 2 views
1

나는이 질문이 몇 번 질문되었지만 내가 어떻게하는지는 묻지 않았지만 어떤 구분 기호를 사용해야 하는지를 알고있다.파이썬에서 문자열을 구분하는 구분 기호

그래서 나는 매우 긴 문자열을 가지고 있으며이를 단어로 분리하고 싶습니다. 결과는 내가 원했던 것이 아니기 때문에 다른 구분자를 추가 할 생각입니다.

문자열에 vs.U.S.과 같은 단어가 있습니다. 구분자로 .을 사용하면 vs이지만 U.S.US이됩니다. 이것은 내가 원하는 것이 아닙니다.

또 다른 예를 들어, 문자열의 *7F***ingx*x+y*yworks*f*k 단어 brainf*ck있다. 나는 구분 기호로 *를 사용하는 경우, 결과는 (brainf*ckbrainfck이되고, F***ingFing되고, 등)

' 구분이 같은 문제가 매우 지저분 할 것이다; (don't'startingout'what'sdo'sdont's)

-=+()도 약간의 문제가 있지만 그 구분 기호를 처리 할 수 ​​있습니다. 문제는 .*'입니다.

누구든지이 문제를 해결하는 방법을 알고 있습니까?

+1

이럴. 발생할 수있는 가능성의 유형을 범주화하고 패턴을 추출 할 수 있는지 확인해야합니다. 당신이 분류 할 수 있다면 당신은 구체적인 문제가 있습니다. 그렇지 않으면 x-y 문제입니다. – Nishant

+1

아마도 정규식을 사용하는 것이 좋습니다. (re module) –

+0

단어 분리에'공백 '을 사용하지 않는 이유는 무엇입니까? –

답변

0

무엇을 다시 사용하는 방법에 대한이 매우 어려운 문제이다

import re 
text = 'U.S. vs. brainf*ck *7 F***ing x*x+y*y works* f*k' 
get = re.split('\s', text) 

# ['U.S.', 'vs.', 'brainf*ck', '*7', 'F***ing', 'x*x+y*y', 'works*', 'f*k'] 

#Example 
print(get[0]) # U.S. 
print(get[1]) # vs. 
관련 문제