2012-04-25 11 views
0

私は長いテキストファイルを持っていますが、各行は/MM0001 (Table(12,))または/MM0015 (Table(11,))のように見えます。私は/MMの横に4桁の数字だけを残したいと思います。 "table(12、)"の部分でなければ、数字以外の文字はすべて取り除くことができますが、4桁の数字だけを抽出する方法はわかりません。始めるためのアドバイスはありますか?テキストファイルから選択した文字を削除する

答えて

3

、あなただけのこれはあなたにだけ与える必要がありline[3:7]

0

各行が/MMで始まる場合は、ファイルを通過してline[3:7]などを印刷してください。

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

テキストを1行ずつ解析し、すべての行の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に従う整数であり、整数の文字列の長さに関係なく動作するはずです。彼らが特定の長さになることが保証されている場合は、他の例(正規表現を使用しない例)の方が良いでしょう。

関連する問題