特定のフォーマットに従ったファイル内のすべての番号を見つける必要があります。形式は次のとおりです。特定のフォーマットの番号を見つける
各数字は正または負です(記号は存在していてもいなくてもかまいません。小数点の前には1つ以上の桁があり、小数点以下には1つ以上の桁があります)。小数点以下の桁はないかもしれません。各番号の前後にはスペースがあります。 2つの数字は、カンマ(、)またはセミコロン(;)またはコロン(:)で区切られています。例えば、 (35.3,52.23; -623,623.62:-52,65)
上記の例では、6つの数字があります。検索される数字のリストは括弧の間にある。今までのコードは次のようになりました。
def number_processing(file_location):
""""""
import re
file_variable = open(file_location)
lines = file_variable.readlines()
numbers = re.compile(r'[(] *[+]?[-]?[0-9][0-9]*[.]+[,]+[;]+[0-9][0-9]* *[)]')
numbers_list = []
for line in lines:
for word in line.split(" "):
match = numbers.match(word)
if match:
numbers_list.append(match.group())
print numbers_list
何か助けていただければ幸いです。
Nifty答え。簡潔さのために+1:D – skytreader
+1の優雅さ! – jathanism
ご回答いただきありがとうございます。しかし、私はそれを少し微調整するのに助けが必要です、数字のセットはかっこのペアで閉じられます、ファイルに複数のセットがあるかもしれません。例えば、(23432.434,32423,4343,343)5555(3244,45445; -4545)。私は関数出力に5555を表示したくありません。再度、感謝します! – italianfoot