使用正则表达式仅选择带有错误代码 (-) 的行并忽略其他行

Posted

技术标签:

【中文标题】使用正则表达式仅选择带有错误代码 (-) 的行并忽略其他行【英文标题】:using regex expressions to only select lines with an error code (-) and ignore others 【发布时间】:2016-09-13 12:38:41 【问题描述】:

我是 regex 表达式的新手,我需要一些帮助才能仅捕获具有 (-999) 的行,并在“2016/99/99 12:00:0.999 2 1”这样的行中检索括号中的数字(-499) 无法打开带有错误代码的消息存储" 这是用于 Tivoli 的 ITM 日志监视器。

【问题讨论】:

你有没有尝试过?什么有效,什么无效? 我试过: REGEX error_log ^$"([^\d]*(\d+)[^\d]*)"$ timestamp $1 CustomSlot1 evtcategory $2 CustomSlot2 severity "Error" CustomSlot3 msg $7结束 请将其添加到问题中。 【参考方案1】:

如果你自己尝试过会很好。但无论如何试试这个:\((-.*?)\)

这将捕获括号之间的任何负面内容。

您从未指定您使用的语言,某些语言使用不同的正则表达式引擎,可能需要也可能不需要分隔符 - 所以这有点摸不着头脑。

演示 - https://regex101.com/r/aD2lM3/2

【讨论】:

谢谢,在过去的几天里,我去过那个网站几次,尝试了各种各样的事情。我已经能够突出显示我正在寻找的部分,但是我在 .fmt 文件中尝试它,它显示语法错误,所以我错过了一些东西 我不确定 .fmt 文件。但也许你错过了分隔符?试试/\((-.*?)\)/g

以上是关于使用正则表达式仅选择带有错误代码 (-) 的行并忽略其他行的主要内容,如果未能解决你的问题,请参考以下文章

SQL Server:选择列中多次出现正则表达式匹配的行

Redshift 正则表达式错误?

正则表达式转义带有注释的行

仅插入唯一行并更新已存在的行

Ansible:带有正则表达式的lineinfile模块并循环添加没有正则表达式的行

否定字符类中的单引号