c# - 正则表达式匹配多个字符串

标签 c# regex

<分区>

我想解析日志文件以检索时间类型消息。日志文件的构造如下:

[08:52:18] [ERROR] Ceci doit aparaitre 
[08:52:18] [WARN] Bonjour 

我目前是这样做的:

var result = Regex.Match(fileLogs, @"/\[(.+)\] \[(.+)\] (.+)/g");

这在 RegexStorm 这样的网站上运行良好但不在我的代码上。我真的不明白为什么。

我想检索这些元素以创建 Log 的新实例(它只有 3 个属性:timetype消息)

最佳答案

去掉开头的/和结尾的/g。您正在使用 C# 而不是 Javascript 进行编程。

var result = Regex.Match(fileLogs, @"\[(.+)\] \[(.+)\] (.+)");

Ideone 表明它现在可以工作了:https://ideone.com/QkTYwS

要正确拆分它,您可以使用类似的东西:

var result = Regex.Matches(fileLogs, @"\[(.+)\] \[(.+)\] (.+)");

foreach (Match match in result)
{
    string time = match.Groups[1].Value;
    string type = match.Groups[2].Value;
    string messsage = match.Groups[3].Value;
    Console.WriteLine("{0} | {1} | {2}", time, type, messsage);
}

注意 Regex.Matches 的使用。

Ideone: https://ideone.com/lUxnSs

关于c# - 正则表达式匹配多个字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36150867/

相关文章:

c# - .net 4.0 客户端配置文件中的 LINQ to JSON

javascript - 组合一个或多个字符 (`+?` ) 和正先行 (?=)

regex - 基本正则表达式信息

c# - treeView_selectedItemChanged 事件处理程序

c# - WPF "Calendar only month"在悬停时触发 DisplayDateChanged

Python 逻辑运算符正则表达式

javascript - 正则表达式/Javascript 将十进制度分转换为十进制度

regex - BASH:搜索字符串并准确显示子字符串在其中出现的确切次数

c# - 从 Python pretty-print C#

c# - 拖放动态创建的快捷方式