2011-01-11 33 views
2

私はテキストファイルを持っています。私はerlangでそれを解析しようとします。正規表現

テキスト形式:

pattern1 : value1 
pattern2 : value2 
pattern3 : value3 
... 

このファイルを解析するための正規表現は何?出力にキー値リストが必要です:

[{pattern1 : value1}, {pattern1 : value1}, {pattern1 : value1}]. 

ありがとうございます。私の頭の上に

+4

':'までデータを読み込んでキーを呼び出し、改行まで読み込んでその値を呼び出すのはなぜですか? –

+1

文字列を行で分割し、各行を ':'で分割するのはなぜですか?私はアーランを知らないが、それは非常に簡単でなければならない。 – Kobi

答えて

5

foo() -> 
    {ok, Fd} = file:open("file.txt", [read]), 
    process_lines(Fd, file:read_line(Fd), []). 

process_lines(_, eof, Acc) -> Acc; 
process_lines(Fd, {ok, Line}, Acc) -> 
    [Pattern, Value] = string:tokens(Line, " :\n"), 
    process_lines(Fd, file:read_line(Fd), [{Pattern,Value}|Acc]). 

が、私はこのコードをテストしていませんが、そのような何かが動作するはずです。

+0

私もそれを書いています。 –