2015-06-20 44 views
0

我想用Haskell解析包含多個數據序列(列數相同,內容相同......)的文件。 我的數據序列將由關鍵字前後分隔。用Parsec解析複雜文件

BEGIN 
1 882 
2 809 
3 435 
4 197 
5 229 
6 425 
... 
END 

BEGIN 
1 235 623 684 
2 871 699 557 
3 918 686 49 
4 53 564 906 
5 246 344 501 
6 929 138 474 
... 
END 

我的問題是,經過與秒差距多次試驗,我的印象中,秒差距是相當作出解析文件逐行而不是整個文件

秒差距做什麼,我想還是應該考慮的其他工具,如快樂亞歷的正確方法?

是否有網站(或其他資源)提供解析複雜文本文件的示例Parsec


注:我給的例子是一個很簡單之一。有更多關鍵字和組合的文件在我的文件中會更棘手。

+4

對於您是否逐行解析,Parsec完全不可知。您的數據格式非常容易在Parsec的範圍之內,Parsec是一個爲編程語言設計的工業級解析器(語法比您的示例更復雜)。parseBlock = between(string「BEGIN \ n」 )(字符串「END \ n」)$ sepBy(char'\ n')parseSingleLine'(其中'parseSingleLine'解析一行數據)將工作。 –

+1

Parsec沒有任何關於「逐行」的內容。它應該很容易處理這個問題。 – MathematicalOrchid

+0

@BenjaminHodgson我認爲你的意思是'sepBy parseSingleLine(char'\ n')'。 – Jubobs

回答