2011-01-11 7 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

Как я бы это написал. –

Смежные вопросы