2014-06-08 3 views
1

텍스트 파일이 있는데 두 줄 모두 '대문자'단어/문자 만있는 인접 줄 사이의 모든 줄 바꿈 문자를 제거하고 싶습니다. 따라서 한 행이 ABCD이고 다음 행이 AB이면 결과는 ABCD AB이어야합니다. 줄 단위로 텍스트를 반복하면서이 작업을 수행 할 수 있지만 정규식을 사용하면보다 우아한 방법이 필요합니다. 다음은 텍스트 예입니다Python Regex - 기준에 따라 여러 줄 연결

ABCD 
AB 
abcd ABB 
cd 
AB 
ABC 
ABCD 
ab 

나는이 싶어 : 나는 다음 사항을 서면으로 작성했습니다

ABCD AB 
abcd ABB 
cd 
AB ABC ABCD 
ab 

있지만이 개 자본 연속 라인이 아닌 이상 작동합니다.

r = re.compile(r'(\n)([A-Z ]+)(\n)([A-Z ]+)(\n)') 
text = r.sub(r'\1\2 \4\5',text) 

다른 복잡한 점이 없다고 가정합니다 (예제는 이미 깨끗합니다). 나는 정규 표현식을 배우려고 애쓰는 초보자이다! 감사.

답변

1

this demo를 참조하십시오

검색 : (?m)([A-Z ]+)[\r\n]+(?=[A-Z ]+$)

바꾸기 : 우리는 당신이 줄 바꿈을하는 데 사용되는 공간을 삽입하는 \1

  1. 참고.

    결과 : re.sub (r "(? m) ([AZ] +) [[r] \)", "r"\ 1 ", 주제"

+1

안녕하세요, 기꺼이 작동하지만 포인트 번호 2로 수정하십시오. :) – zx81

관련 문제