我正在开发一个导入数千行的应用程序,其中每行都有这样的格式:
|* 9070183020 |04.02.2011 |107222 |M/S SUNNY MEDICOS |GHAZIABAD | 32,768.00 |
Run Code Online (Sandbox Code Playgroud)
我使用以下内容Regex将行拆分为我需要的数据:
Regex lineSplitter = new Regex(@"(?:^\|\*|\|)\s*(.*?)\s+(?=\|)");
string[] columns = lineSplitter.Split(data);
foreach (string c in columns)
Console.Write("[" + c + "] ");
Run Code Online (Sandbox Code Playgroud)
这给了我以下结果:
[] [9070183020] [] [04.02.2011] [] [107222] [] [M/S SUNNY MEDICOS] [] [GHAZIABAD] [] [32,768.00] [|]
Run Code Online (Sandbox Code Playgroud)
现在我有两个问题.
1.如何删除空结果.我知道我可以用:
string[] columns = lineSplitter.Split(data).Where(s => !string.IsNullOrEmpty(s)).ToArray();
Run Code Online (Sandbox Code Playgroud)
但有没有内置的方法来删除空结果?
2.如何拆除最后一根管子?
谢谢你的帮助.
此致,
Yogesh.
编辑:
我认为我的问题有点误解.从来没有关于我如何做到这一点.这只是关于如何通过更改Regex上面的代码来实现它.
我知道我可以在很多方面做到这一点.我已经使用上面提到的代码和一个Where子句以及另一种方式(也是两倍以上)更快地完成了它:
Regex regex = new …Run Code Online (Sandbox Code Playgroud)