【发布时间】:2010-11-22 11:10:06
【问题描述】:
我有一个程序,它利用标记化和正则表达式从日志文件字符串中过滤掉空格('')和“,”。
但是,由于日志文件字符串目录中存在空格,所以有人可以就我可以使用的正则表达式提供一些建议吗?谢谢!
*由于日期、时间和内容必须标记化,请不要有空格和逗号!不要假设我放置这些空间是为了好玩并开始投反对票!喜欢某人。
日志文本文件的这样一个字符串行是:
Thu Mar 02 1995 21:31:00,2245107,m...,r/rrwxrwxrwx,0,0,8349-128-3,C:/Program Files/AccessData/AccessData Forensic Toolkit/Program/wordnet/Adj.dat
程序的结果输出将是"
Thu
Mar
02
1995
21:31:00
2245107
m...
r/rrwxrwxrwx
0
0
8349-128-3
C:/Program
Files/AccessData/AccessData
Forensic
Toolkit/Program/wordnet/Adj.dat
因此,“C:/Program Files/AccessData/AccessData Forensic Toolkit/Program/wordnet/Adj.dat”由于空格正则表达式而被分隔。
程序代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Diagnostics;
using System.IO;
using System.Text.RegularExpressions;
namespace Testing
{
class Program
{
static void Main(string[] args)
{
String value = "Thu Mar 02 1995 21:31:00,2245107,m...,r/rrwxrwxrwx,0,0,8349-128-
3,C:/Program Files/AccessData/AccessData Forensic
Toolkit/Program/wordnet/Adj.dat";
//
// Split the string on line breaks.
// ... The return value from Split is a string[] array.
//
//foreach (String r in lines)
//{
String rex = @"[\s,]";
String[] token = Regex.Split(value, rex);
foreach (String line in token)
{
Console.WriteLine(line);
}
//}
}
}
}
【问题讨论】:
-
你为什么用空格分割?看起来逗号是该示例行中唯一的分隔符。 (文件名中可以包含逗号吗?)
-
老兄...这很明显,因为涉及到时间?如上所述,它是一个 LOG TEXT FILE STRING,所以显然是一个 MACtimes 日志文件。 MACtimes 是一个基于时间轴的取证日志。
标签: c# regex whitespace tokenize