java - 正则表达式排除不包含单词但包含某些单词的行

标签 java regex jenkins jenkins-plugins

我正在使用 jenkins 可编辑电子邮件插件,我需要使用正则表达式来过滤日志

我有这个正则表达式

 regex="(.*)fatal:(.*)"

基本上匹配以 fatal: 开头的行,以便我可以捕获错误

示例行如下所示

fatal: [localhost]: FAILED! => {"attempts": 1, "changed": true, "cmd": "nslookup test1.local", 

但我想捕获所有 fatal error ,除了包含一些像 nslookup 这样的单词。

我想忽略上面有 nslookup 的行,所有其他应该没问题

最佳答案

您可以使用正则表达式进行负向预测。这适用于您的示例:

^(.*)fatal: ((?!nsookup).)*$

要检查两个不同的先行单词:

^(.*)fatal: ((?!nslookup)(?!stuff).)*$

仅当“fatal:”之前可以有某些内容(空格或其他字符)时,才需要开头的 (.*)

您可以通过此链接使用表达式:https://regex101.com/r/ezxA5s/1

关于java - 正则表达式排除不包含单词但包含某些单词的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43268531/

相关文章:

linux - Jenkins 在 "Execute shell"步骤期间生成无限数量的进程

java - 使用 restController 发布对象

java - 解码 "Type mismatch: cannot convert from XmlAccessType to AccessType "时出错

node.js - Jenkins Git 插件不接收发布的参数

生成#NAME 的正则表达式? UDF 错误

regex - 正则表达式/"regular expression"中的正则是什么意思?

jenkins - 在声明式 Jenkinsfile 中动态加载代理

java - 何时将静态嵌套类(及其中的静态成员)加载到内存中?

java - 框架中的应用程序特定注入(inject)

python - 用于提取以 Mr.|Mrs|The|DR 开头的姓名的正则表达式