如何从文本文件解析信息

问题描述:

我正在寻找各种选项来解析来自文本文件的数据。我们收到来自不同客户的发票,格式未预定义。基本上我们接收如下所示的具有不同列的表类结构,并且需要从文件中提取数据。如何从文本文件解析信息

现在,我们有一个IExtractor接口与Parse方法,由每个客户端解析器实现,并根据文件适当类实例化和逻辑硬编码检索数据。

由于客户端的数量在不断增加,我们正在研究更强大且易于使用的代码方法来从文本文件中提取信息。

建议使用正则表达式来识别页眉和页脚,并使用另一个表达式从每一行中提取信息。如果有人能提出更好的选择,我将不胜感激。

<addition text>..... 
    Date   Document   Invoice    Deductions  Paid Amount 
    -------------------------------------------------------------------------------------------- 
    21.03.2014 9289    9280     0.00      48,000.00 
    10.01.2013 21389    9402     3.00      4,000.00 
    21.03.2014 9289    9280     0.00      48,000.00 
    10.01.2013 21389    9402     3.00      4,000.00 

    Sum Total 
    Please ....<text> 
+0

如果您只需要数据,为什么不使用简单的CSV文件?对于人类来说阅读并不是那么漂亮,但是它没有“绒毛”的数据。 – gunr2171 2014-09-22 17:04:53

+0

我们收到来自客户的* .txt文件 – Sunny 2014-09-22 17:07:08

+0

我不清楚你在问什么。你问你应该告诉你的客户提供什么样的数据格式? XML和JSON通常是交换数据的好格式,尽管它们不是人性化的,所以你需要创建一个程序来为你生成这些数据。否则CSV或Excel是不错的选择。 – mason 2014-09-22 17:08:23

如果你有太多的做代码解决方案 - 即IExtractor .Parse你提到 - 然后我会去的嵌入式脚本语言

然后,您可以编写每个客户端的脚本。

我会使用JavaScript作为语言(它已建立在正则表达式的支持)。我将使用codeplex的jint项目