使用正则表达式在几个字符串上传播值

时间:2015-06-03 08:05:55

标签: c# regex

我在解析日志文件时遇到问题。问题是一些单元格散布在文件的几个字符串上。

有没有办法使用正则表达式获得红色方块的值?

1 个答案:

答案 0 :(得分:1)

无法抗拒,所以我写了一个简单的例子;)。它并不漂亮,但它可能适合您的需求。请查看dotnetfiddle。请注意,文本与您的文本并不完全匹配,您需要在一个日志条目中设置最大行数。这是通过调节结束RE的(?:\s+?(\S.*?)\n)?的数量以及输出中的组的添加数量来完成的。

正则表达式:

\d+\s+\d+\s+\w+\s+\d{4}-\d{2}-\d{2}\s+\d{2}:\d{2}:\d{2}\s+\d+\s\d+\s(.*?)SUCCESS\d{4}.*?\n(?:\s+?(\S.*?)\n)?(?:\s+?(\S.*?)\n)?(?:\s+?(\S.*?)\n)?(?:\s+?(\S.*?)\n)?

一个简单的解释是它匹配一个以数字开头的行,将列跳到" Mml命令"然后捕获到" SUCCESSnnnn"。然后它可选地匹配以空格开头的任何后续行(最多5行)。

希望这有帮助。

问候。