2013-02-26 2 views
1

이 정규식은 ((\s\s\s.*\s)*)입니다. 그것은 3 개의 공백 또는 탭을 의미하며, 그 뒤에 여러 문자와 공백 또는 탭 또는 줄의 끝을 의미합니다. 내가 얻은 각 줄을 목록에 어떻게 저장할 수 있습니까? 나는 이런 식으로 뭔가가있는 경우여러 줄의 정규 표현식

그래서 :

___The rabbit caught the lion\n 
___The tiger got the giraffe\n 
___The owl hit the man\n 

출력은 다음과 같이 할 수 있습니다 :

list=[The rabbit caught the lion, The tiger got the giraffe, The owl hit the man] 

그냥 내가 가지고있는 다른 패턴의 각 그룹을 사용하는 것이 언급 .

+1

'str.splitlines'에 대해 들어 본 적이 있습니까? – Abhijit

+0

정규 표현식의 그룹이 문자열을 반환합니까? –

+0

're.findall ('\ s {3} (. *)', text)' – JBernardo

답변

1

3 개의 공백 (또는 탭)으로 시작하는 전체 줄을 일치시키는 것처럼 보입니다. 이것은 re.MULTILINE^$ 앵커를 사용하여 수행 할 수 있습니다.

matches = re.findall('^\s{3}(.*)$', contents, re.MULTILINE) 

당신이 세 공간 전에 문자를하는 것에 대한 걱정하지 않는 경우, 당신은이에 식을 줄일 수 . 기본적으로 (개행까지 모든 것을 일치하기 때문에

matches = re.findall('\s{3}(.*)', contents) 

이것은).