2014-07-07 2 views
0

죄송합니다 (이스케이프 문자로)를 두 번 문자를 그리워하지만, 여전히 ...변환 문자열이 나는 질문을 반복하는 경우,

문자열 기호 많은에게, 캐럿을 포함,이 기호를 포함한 특수 기호로 나열하려면 ('^' 형식

result = ['^h', '^c', '^04', '^^', '^13/  \' ... etc..] 

내가 사용 re.split("(?!\^{2})(\^)"을 시도했지만이 반환 데이터 : 결과

string = "^h^c^04^^^13/  \^d^b/ \^u^u^u^u^u^u^u^l^l\^o^b^r/"` 

나는 형식 목록을했다 필요 :

) 구분입니다
['', '^', 'h', '^', 'c', '^', '04^^', '^', '13/ \\', '^', 'd', '^', 'b/ \\', ...] 

누구나 적절한 형식으로 데이터를 가져 오는 방법을 제안 할 수 있습니까? 감사.

답변

2
>>> string = "^h^c^04^^^13/  \^d^b/ \^u^u^u^u^u^u^u^l^l\^o^b^r/" 
>>> import re 
>>> re.findall(r'\^.+?(?=\^|$)', string) 
['^h', '^c', '^04', '^^', '^13/  \\', '^d', '^b/ \\', '^u', '^u', '^u', 
'^u', '^u', '^u', '^u', '^l', '^l\\', '^o', '^b', '^r/'] 

가능한 한 적게 일치하는 비 탐욕적 일치 (.+?)를 사용했습니다.

및 다음 사전 일치 어서 트 ((?=...))를 사용하여 ^ 또는 문자열 ($)의 끝까지 패턴을 일치시킵니다.

+0

오, 그 작품! 고마워. –

+0

@AndrijMuzychka, 스택 오버플로에 오신 것을 환영합니다! 이것이 도움이된다면, [답변 수락] (http://meta.stackoverflow.com/a/5235)을 통해 커뮤니티에 알릴 수 있습니다. – falsetru

관련 문제