2017-02-11 12 views
-1

文字列(たとえば "ABC")の入力を受け入れてから、txtファイルを読み込んでその文字列を検索するようにします。文字列が見つかると、ファイル内の文字列に最も近い整数(たとえば:456)を出力します。これは可能ですか?文字列をtxtファイルで検索し、最も近い整数を表示

これまでのところ、「関連する行」を印刷できるコードが見つかりました。これは、文字列から2行離れた行です。このコードは、

f = open("textfile.txt", "r") 
searchlines = f.readlines() 
f.close() 
for i, line in enumerate(searchlines): 
    if "string" in line: 
     for l in searchlines[i:i+2]: print 
     print 

このコードは、私の文字列の前後に2行を出力します。しかし、しかし、私は特定の整数を印刷する必要があるので、そこから進める方法がわかりません。

私の目的のためには、文字列の右側に「最も近い整数」が必要です。

+0

はい、それは可能ですが、最初のソリューションで作業してみてください質問を投稿する前に –

+0

最も近いとはどういう意味ですか?右か左か、どちらが近いですか? –

+0

ヒント:regex 'string。*?(\ d +)'を使用することができます – elfan

答えて

0

あなたはf.read()で1つの文字列にファイルを読み込み、その後、グループに整数を取り込み、正規表現を経由して整数を得ることができます:

import re 

f = open("textfile.txt", "r") 
content = f.read() 
f.close() 

find = 'hello' # the string to find 
result = re.search(find + r'\D*(\d+)', content) 

print(result.group(1)) 
+0

これは完璧に動作します、ありがとう! –

関連する問題