Regex messageServerRegex =
new Regex(@"([0-9\-]{10})\ ([0-9:]{8})\ \[TEXT\]\ (\[Server\])\ ([^\[]*)");
if (messageServerRegex.IsMatch(rchConsoleText))
{
var infoMatches = messageServerRegex.Split(rchConsoleText);
Console.WriteLine("Date: {0}\nTime: {1}\nType: {2}\nMessage: {3}",
infoMatches[1], infoMatches[2], infoMatches[3], infoMatches[4]);
}
这是我们想要的文字的两个例子服务器过滤只能找到一个正则表达式搜索的第一场比赛
2012年12月24日2时24分18秒[文字] [服务器] 2012-12-24 02:24:18 [TEXT] [服务器]示例文本。
我们要从这条线后面的结果是:
Date: 2012-12-14 Time: 02:24:18 Type: [TEXT] [Server] Message: 2012-12-24 02:24:18 [TEXT] [Server] Sample text.
但将响应回:
Date: 2012-12-14 Time: 02:24:18 Type: [TEXT] [Server] Message: 2012-12-24 02:24:18
正如你所看到的,它只是显示日期和时间,这是因为正则表达式过滤器,所以我怎么让它只能减少日期和时间?
第二个例子能正常工作,这是:
2012年12月24日2点24分18秒[TEXT] [服务器]试样文本样本的文本样本的文本。
我们要从这条线后面的结果是:
Date: 2012-12-14 Time: 02:24:18 Type: [TEXT] [Server] Message: Sample text sample text sample text.
有没有你正在使用拆分理由吗?我认为这会让它变得比需要的复杂。为什么不在命名组中使用'regex.Match'或'.Matches'? –
@ agent-j这不是在相同的输出中解析吗? –