javascript - 用于匹配错误和相关几行的正则表达式

标签 javascript regex node.js error-handling monit

我正在寻找一个单行正则表达式来匹配日志文件中的“Error”一词,并且我需要获取包含“Error”一词的行上方和下方的几行以进行调试。

例如: 我需要匹配单词“TypeError”,并在该匹配行的上方和下方获取其他几行。至少我需要接下来的 10 行。有人可以帮忙吗?

下面的日志文件内容=>

**TypeError**: Parameter 'url' must be a string, not undefined
    at Url.parse (url.js:107:11)
    at urlParse (url.js:101:5)
    at Object.urlResolve [as resolve] (url.js:404:10)
    at parseMarkdown (/opt/controllers/api/userguide.js:53:19)
    at /opt/controllers/api/userguide.js:33:17
    at Object.<anonymous> (/opt/models/api.js:172:4)
    at /opt/lib/data/api.js:138:5
    at IncomingMessage.<anonymous> (/opt/node_modules/httpunch/lib/_wrap_request.js:100:9)
    at IncomingMessage.g (events.js:180:16)
    at IncomingMessage.emit (events.js:117:20)

最佳答案

试试这个(获取最多 10 条前后行)-

(?:(?:.*\n){0,10}).*?Error.*(?:(?:\n.*){0,10})

Demo

编辑
刚刚阅读有关unix环境的评论。
您可以使用Grep使用与上面相同的正则表达式的命令。
像这样 -

$ grep -Pzo "(?:(?:.*\n){0,10}).*?Error.*(?:(?:\n.*){0,10})" <filename>

关于javascript - 用于匹配错误和相关几行的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28951538/

相关文章:

node.js - TypeError : object is not a function node. js 我不能,似乎不知道我做错了什么

javascript - 更新字符串子数组

javascript - 如何给prettyphoto添加动画或效果

javascript - ionic 2 无限滚动不适用于选项卡

regex - 调整正则表达式以在可选小数点后要求 2 位数字?

java - 如何将Java AES ECB加密代码转换为Nodejs

javascript - 如何在 JavaScript 中将数字表示为十六进制?

javascript - jQuery src 选择器问题

R 正则表达式/gsub : extract part of pattern

javascript - 正则表达式:在一个字符串中多次检查javascript