如何使用正则表达式获取第三列的值

How to get the value of the 3rd column using regex

我有这样的日志:

[2015-09-03 04:54:23,755] [Log Name] [INFO ] [test.audit1] [AUD5454] [default/test1] logged out.

[2015-09-01 01:33:45,851] [Log Name] [Critical ] [test.audit2] [AUD53501] [default/test2] logged in.

我需要获取 [] 之间的第 3 列值,我尝试使用此正则表达式:

(?<=\[)[^\]]+

但它只给我 []

之间的值

[INFO ] => INFO

[Critical ] => Critical

...我需要这些值 INFO & Critical

另一个问题如何获取[default/test2] & [default/test1]

之后的值

logged out.

logged in.

您可以使用

(?:\s*\[[^\]]*\]){2}\s*\[([^\]]*)\](?:\s*\[[^\]]*\])*\s*(.*)

demo

您需要的值在第 1 组和第 2 组中。