帮我分析以下文件格式(Help me parsing the following file form

2019-11-04 12:57发布

我需要解析第三方文本文件的格式如下

WE BUY  : 10 000.00 USD                      
VALUE   : 281210
RATE    : 30.2600

所以,一般的模式是

TAG,一些分离,:,someseparator,VALUE

让我们,说,我开始与File.ReadAllLines所以我处理的各条线。

什么是解析值的最佳方式是什么?

UPDATE

我没有对任何格式的文件,但让我们说,它是基于位置的。

1)“:”总是在字符串中第9个字符内,2)值是11字符。 3)未使用的空间充满空格字符。

让我们来谈谈该格式。

更新2

我在想,如果正则表达式是更好地在这里? 例如,让我们说我有一个子任务找到

RATE : 30.2600

在整个文本,并提取30.2600因为是始于11字符

Answer 1:

对于每一行:

   string[]  parts = line.Split(':');
   // assert parts.Length == 2
   string tag = parts[0].Trim();
   string[] values = parts[1].Split(' ', SplitOptions.NoDupes);  // or ','


Answer 2:

对于从文件中读取数据的分析,可以考虑使用正则表达式。 在这种情况下,你必须要警惕,虽然为分隔符,即确保分隔符(:在我们的情况下)未在标签或值的部分无意中发现。


            string pattern = "^(?<TAG>[^:]+):(?<VALUE>.+)$";

        string dataReadFromFile = "WE BUY  : 10 000.00 USD\r\nVALUE   : 281210 \r\nRATE    : 30.2600\r\n";

        Regex rx = new Regex(pattern, RegexOptions.Multiline); // Multiline important

        MatchCollection mc = rx.Matches(dataReadFromFile);

        foreach (Match m in mc)
        {
            Console.WriteLine("{0}->{1}", m.Groups["TAG"].Value.Trim(), m.Groups["VALUE"].Value.Trim());
        }

试试这个,看看它是否适合你。 如果不告诉我的详细信息进行更新。 希望这将是有用的。



文章来源: Help me parsing the following file format