2012-04-25 2 views
0

나는 각 줄이 /MM0001 (Table(12,)) 또는 /MM0015 (Table(11,))과 비슷한 텍스트 파일을 오래 가지고 있습니다. /MM 옆에 네 자리 숫자 만 남기고 싶습니다. "table (12,)"파트가 아닌 경우 모든 숫자가 아닌 문자를 제거 할 수 있지만 4 자리 숫자 만 추출하는 방법을 알지 못합니다. 시작에 대한 조언이 있으십니까?텍스트 파일에서 선택된 문자 제거

답변

3

정확히 그 형식이라면, 당신은 단지 line[3:7]

0

각 줄이 /MM으로 시작하는 경우 파일을 찾아 인쇄하십시오. 예 : line[3:7].

for line in file: 
    print line[3:7] 
2

줄 단위로 텍스트를 구문 분석 한 다음 모든 줄의 4 번째에서 7 번째 글자까지 사용할 수 있습니다. LN [3 : 7]

2
import re 
R=re.compile(r'/MM(\d+)') 
for line in file: 
    L=R.match(line) 
    if L: 
     print L.group(1) 

또는 더 간결하게 ...

lines=[R.match(line).group(1) for line in file] #works if the lines are guaranteed to start with \MM 

이 당신에게 단지를 주어야한다을 인쇄 할 수 있습니다 /MM을 따르는 정수이며 정수의 문자열이 얼마나 길어도 상관 없습니다. 확실한 길이가 보장된다면 정규식을 사용하지 않는 다른 예제들 중 하나를 사용하는 것이 좋습니다.

관련 문제