可以在字段值的文本框中键入正则表达式,以从日志事件中提取字段。

键入的表达式必须使用 Java 正则表达式语法。

表 1. 字符运算符
正则表达式 描述
\ 对特殊字符进行转义处理
\b 单词边界
\B 不是单词边界
\d 一个数字
\D 一个非数字
\n 换行符
\r 回车符
\s 一个空格
\S 除空格之外的任何字符
\t 选项卡
\w 一个字母数字或下划线字符
\W 一个非字母数字或下划线字符

例如,如果您具有字符串 1234-5678 并应用以下正则表达式

正则表达式 结果
\d 1
\d+ 1234
\w+ 1234
\S 1234-5678
表 2. 限定符运算符
正则表达式 描述
. 除换行符之外的任何字符
* 零个或多个尽可能长的字符
? 零个或一个字符或尽可能短的字符
+ 一个或多个
{<n>} 恰好 <n> 次
{<n>,<m>} <n> 至 <m> 次

例如,如果您具有字符串 aaaaa 并应用以下正则表达式

正则表达式 结果
. a
* aaaaa
.*? aaaaa
.{1} a
.{1,2} aa
表 3. 组合运算符
正则表达式 描述
.* 任意内容
.*? 前面为尽可能短的任意内容

例如,如果您具有字符串 a b 3 hi d hi 并应用以下正则表达式

正则表达式 结果
a.* hi b 3 hi d
a .*? hi b 3
表 4. 逻辑运算符
正则表达式 描述
^ 行首(如果在括号中,则不是)
$ 行尾
() 封装
[] 一个在括号中的字符
| OR
- 范围
\A 字符串开头
\Z 字符串结尾

例如,如果应用以下正则表达式

正则表达式 结果
(hello)? 包含或不包含 hello
(a|b|c) a 或 b 或 c
[a-cp] a 或 b 或 c 或 p
world$ 以 world 结尾,后面没有其他内容
表 5. 前向运算符
正则表达式 描述
?= 肯定性前向(包含)
?!= 否定性前向(不包含)

例如,如果应用以下正则表达式

正则表达式 结果
is (?=\w+)\w{2} primary is FT primary? false
opid=(?!WFU-1fecf8f9)\S+ WFU-3c9bb994
表 6. 其他正则表达式示例
正则表达式 描述
[xyz] x、y 或 z
(info|warn|error) info、warn 或 error
[a-z] 一个小写字母
[^a-z] 不是小写字母
[a-z]+ 一个或多个小写字母
[a-z]* 零个或多个小写字母
[a-z]? 零个或一个小写字母
[a-z] {3} 恰好三个小写字母
[\d] 一个数字
\d+$ 一个或多个数字,后跟消息结尾
[0-5] 0 到 5 之间的一个数字
\w 一个单词字符(字母、数字或下划线)
\s 空格
\S 除空格之外的任何字符
[a-zA-Z0-9]+ 一个或多个字母数字字符
([a-z] {2,} [0-9] {3,5}) 两个或更多个字母,后跟三到五个数字