是否使用正则表达式解析文本文件
本文关键字:文本 文件 正则表达式 是否 | 更新日期: 2023-09-27 18:34:39
我有一个包含以下内容的文本文件:
Warning 18.05.2012 16:27:45 www.site.com 0 None BusyCount: 00:00:00.0000880
Warning 18.05.2012 16:27:45 www.site.com 0 None GetBusyPlace: 00:00:00.7759916
Warning 18.05.2012 16:27:44 www.site.com 0 None GetHallPlan: 00:00:00.0098537
Warning 18.05.2012 16:27:44 www.site.com 0 None GetSeatPrice: 00:00:00.1462649
Warning 18.05.2012 16:27:40 www.site.com 0 None BusyCount: 00:00:00.0000988
Warning 18.05.2012 16:27:40 www.site.com 0 None GetBusyPlace: 00:00:00.7330764
Warning 18.05.2012 16:27:39 www.site.com 0 None GetHallPlan: 00:00:00.0435432
我有三个数组:
List<string> getSeatPrice = new List<string>();
List<string> getBusyCounts = new List<string>();
List<string> getHallPlan = new List<string>();
如何解析此文本文件并从字符串(例如GetBusyPlace: 00:00:00.7759916
(中获取时间并放入适当的数组中?
谢谢
看起来文件中的每一行都是以空格分隔的标记集。在这种情况下,最简单的方法是使用 String.Split()
,并通过其在字符串中的位置获取所需的令牌。
var getSeatPrice = new List<string>();
var getBusyCounts = new List<string>();
var getHallPlan = new List<string>();
foreach (var line in File.ReadAllLines("c:''data''myfile.txt")) {
var tokens = line.Split(''t', ' ');
var kind = tokens[6];
var value = tokens[7];
switch (kind) {
case "GetSeatPrice:":
getSeatPrice.Add(value);
break;
case "BusyCount:":
getBusyCounts.Add(value);
break;
case "getHallPlan:":
getHallPlan.Add(value);
break;
}
}
看起来像固定宽度的字段格式。
我建议使用位于 Microsoft.VisualBasic.FileIO
命名空间中的 TextFieldParser
类(只需添加对 Microsoft.VisualBasic.dll
的引用,您就可以开始了(。
它是一个 .NET 库,您可以设置它来指定字段宽度和类型,以便获得字段的强类型视图。