我在解析日志文件时遇到问题。问题是一些单元格散布在文件的几个字符串上。
有没有办法使用正则表达式获得红色方块的值?
答案 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行)。
希望这有帮助。
问候。