2014-08-28 2 views
-2

파일이 있는데 정규 표현식 일치 부분을 삭제하고 나머지 줄을 파일에 써야합니다.파일의 정규 표현식 일치 부분 삭제

정규식 매칭 코드 파일을 삭제합니다 :

import re 
with open("in1.txt") as f: 
    lines = f.read() 
    m = re.findall(r'(?s)(my _car_\s*.*?)my', lines) 

입력 파일 :

my _car_(10) 
    skoda 
    audi 

my home 
good 

my _car_(11) 
benz 

예상 출력 :

my home 
good 

날 그것을 해결하기 위해 도와주세요은 답변 주시면 감사됩니다! 당신을 가정

+0

가능한 중복 http://stackoverflow.com/questions/25553575/parse- using-regex-and-print-the-line) – Dalorzo

+0

: 정규식과 일치하는 줄 다음에 오는 공백으로 시작하는 모든 줄을 제거하려고합니까? –

+0

아니, 난 맹목적으로 정규식과 일치하는 라인을 제거해야합니다 –

답변

0
import re 
with open("in1.txt") as f: 
    lines = f.read() 
    m = re.sub(r'(?s)my _car_.*?(?=my|$)', '', lines) 
    m = re.sub(r'\n+', '\n', m) 
    print m, 
([정규식을 사용하여 분석하고 라인을 인쇄]의
+0

삭제되지 않았습니다. 제발 도와주세요! –

+1

파일을 열고 'm'의 내용을 파일에 써야합니다. –

1

는 라인을 쓸 수 있으며, this regex replacement 당신은 그것은 당신이 파일에 쓰는 방법을 모르는 같은 소리

lines = re.sub(r'(?s)(my _car_\s*.*?)(my|$)', r'\2', lines).strip() 

을 찾고 어떻게 될 것인가. out.txt 라는 파일에 텍스트를 덤프하려면

with open('out.txt', 'w') as f: 
    f.write(lines) 
+0

나는 그것의 동일한 파일을 지우지 않는다! –