C# 拆分文件以解析文本。正则表达式或其他方法
我有一个文本文件,它有多行,每行都有时间戳。我想在某个日期拆分它,然后运行一个常规的正则表达式。匹配一个单词 所以我有一个DateTime变量,叫做C# 拆分文件以解析文本。正则表达式或其他方法,c#,.net,regex,C#,.net,Regex,我有一个文本文件,它有多行,每行都有时间戳。我想在某个日期拆分它,然后运行一个常规的正则表达式。匹配一个单词 所以我有一个DateTime变量,叫做 var date; While(!reader.EndOfStream) { //need to split the document at certain date maybe Regex.Split and save it as newData var matches=Regex.Matches(File.ReadAllText(newD
var date;
While(!reader.EndOfStream)
{
//need to split the document at certain date maybe Regex.Split and save it as newData
var matches=Regex.Matches(File.ReadAllText(newData), someWord);
}
我不知道如何使用正则表达式或其他方式在某个点拆分文档。我怎样才能把它分开呢
Portion of datafile is
2013-03-03 19:08:27 Truck 2012 Toyota
2013-03-03 19:08:44 car 2008 Honda
2013-03-03 19:08:55 car 2011 Ford
2013-03-03 19:09:21 car 2005 Nissan
2013-03-03 19:08:29 car 2003 Cadillac
2013-03-03 19:08:32 car 2009 Ford
2013-03-03 19:08:52 car 2007 Suburban";
您可以根据文本文件中的数据创建匿名对象列表,然后根据需要查询列表 例如:
// create anonymous objects
var myData = File.ReadAllLines("c:\\test.txt")
.Select(line => line.Split(new char[]{' '}, StringSplitOptions.RemoveEmptyEntries))
.Select(splits => new
{
Date = DateTime.Parse(splits[0] + " " + splits[1]),
Make = splits[2].Trim(),
Year = int.Parse(splits[3].Trim()),
Model = splits[4].Trim()
});
// find all "Ford" at my date
var results = myData.Select(x => x.Date == myDate && x.Model == "Ford");
注意:您可能需要在匿名对象创建(int.TryParse、DateTime.TryParse)中添加一些错误处理,因为您的文本文件可能不一致。您可以发布示例数据吗?如果它在任何情况下正常化,它应该是非常容易的。