符合某些值的Line的正则表达式值

时间:2014-01-14 23:35:56

标签: regex

我有这样的正则表达式:${BUILD_LOG_REGEX,regex="(?=.*?Environment)(?=.*?Total).*$"}

此REGEX的输出如下:

[...truncated 14 lines...] [java] Environment: XYZ Total(Pass:1 Fail:0 Incomplete:0 Delayed:0 Manual Verification:0) [...truncated 14 lines...]

我想修改这个正则表达式,所以我只能看到这些值作为输出:

Environment: XYZ Total(Pass:1 Fail:0 Incomplete:0 Delayed:0 Manual Verification:0)

有人可以帮助从日志文件中找到此LINE的正确REGEX吗?

2 个答案:

答案 0 :(得分:2)

我担心你可能必须在这里更具体,因为我可以满足你的要求:

E.*?\)

链接:Regex101.com Example

答案 1 :(得分:0)

编辑: 此答案指定解决方案,因为该问题最初被标记为Java问题。此标记已被删除。

如果您只想删除方括号内的任何文本,只需简单调用下面的代码即可生成您要查找的结果。

String source = "[...truncated 14 lines...] [java] Environment: XYZ Total(Pass:1 Fail:0 Incomplete:0 Delayed:0 Manual Verification:0) [...truncated 14 lines...]";
String extract = source.replaceAll("\\[.*?\\]", "").trim();

extract持有值的结果:

"Environment: XYZ Total(Pass:1 Fail:0 Incomplete:0 Delayed:0 Manual Verification:0)"

上面的java代码将用空字符串替换方括号内的所有字符串(基本上删除它们),然后从结果中修剪任何不必要的空格。

正则表达式:

\[.*?\].*及其周围的方括号,是懒惰(非贪婪)匹配。

Regular expression visualization