正则表达式支持编辑

Filebeat 正则表达式支持基于 RE2

Filebeat 有多个配置选项接受正则表达式。例如,multiline.patterninclude_linesexclude_linesexclude_files 都接受正则表达式。但是,某些选项(例如输入 paths 选项)仅接受基于 glob 的路径。

在配置文件中使用正则表达式之前,请参阅文档以验证您要设置的选项是否接受正则表达式。

我们建议您将正则表达式用单引号引起来,以解决 YAML 的字符串转义规则。例如,'^\[?[0-9][0-9]:?[0-9][0-9]|^[[:graph:]]+'

有关支持的正则表达式模式的更多示例,请参阅 管理多行消息。尽管这些示例属于 Filebeat,但正则表达式模式也适用于其他用例。

支持以下模式

模式 描述

单个字符

x

单个字符

.

.

任意字符

[xyz]

字符类

[^xyz]

否定字符类

[[:alpha:]]

ASCII 字符类

[[:^alpha:]]

否定 ASCII 字符类

\d

Perl 字符类

\D

否定 Perl 字符类

\pN

Unicode 字符类(单字母名称)

\p{Greek}

Unicode 字符类

\PN

否定 Unicode 字符类(单字母名称)

\P{Greek}

否定 Unicode 字符类

组合

xy

x 后跟 y

x|y

xy(优先选择 x

重复

x*

零个或多个 x

x+

一个或多个 x

x?

零个或一个 x

x{n,m}

n 个或 n+1 个或 …​ 或 mx,优先选择更多

x{n,}

n 个或更多 x,优先选择更多

x{n}

正好 nx

x*?

零个或多个 x,优先选择更少

x+?

一个或多个 x,优先选择更少

x??

零个或一个 x,优先选择零个

x{n,m}?

n 个或 n+1 个或 …​ 或 mx,优先选择更少

x{n,}?

n 个或更多 x,优先选择更少

x{n}

x{n}?

分组

(re)

带编号的捕获组(子匹配)

(?P<name>re)

带命名和编号的捕获组(子匹配)

(?:re)

非捕获组

(?i)abc

在当前组内设置标志,非捕获

(?i:re)

在 re 期间设置标志,非捕获

(?i)PaTTeRN

不区分大小写(默认为 false)

(?m)multiline

多行模式:^$ 匹配行首/行尾以及文本开头/结尾(默认为 false)

(?s)pattern.

. 匹配 \n(默认为 false)

(?U)x*abc

非贪婪:交换 x*x*?x+x+? 等的含义(默认为 false)

^

空字符串

$

^

在文本或行首(m=true)

$

在文本结尾(类似于 \z 而不是 \Z)或行尾(m=true)

\A

在文本开头

\b

在 ASCII 单词边界处(一侧是 \w,另一侧是 \W\A\z

\B

不在 ASCII 单词边界处

\z

在文本结尾

转义序列

\a

响铃(与 \007 相同)

\f

换页(与 \014 相同)

\t

水平制表符(与 \011 相同)

\n

换行符(与 \012 相同)

\r

\*

回车符(与 \015 相同)

\123

\v

垂直制表符(与 \013 相同)

\*

文字 *,用于任何标点符号 *

\nnn

八进制字符代码(最多三位)

\x7F

两位十六进制字符代码

\x{10FFFF}

十六进制字符代码

否定字符类

\Q...\E

文字文本 ...,即使 ... 包含标点符号

ASCII 字符类

[[:alnum:]]

字母数字(与 [0-9A-Za-z] 相同)

[[:alpha:]]

字母(与 [A-Za-z] 相同)

[[:ascii:]]

ASCII(与 \x00-\x7F] 相同)

[[:blank:]]

空白(与 [\t ] 相同)

[[:cntrl:]]

控制字符(与 [\x00-\x1F\x7F] 相同)

[[:digit:]]

数字(与 [0-9] 相同)

[[:graph:]]

图形(与 [!-~] == [A-Za-z0-9!"#$%&'()*+,\-./:;<=>?@[\\\]^_` {|}~] 相同)

[[:lower:]]

小写字母(与 [a-z] 相同)

[[:print:]]

可打印字符(与 [ -~] == [ [:graph:]] 相同)

[[:punct:]]

标点符号(与 [!-/:-@[-`{-~] 相同)

[[:space:]]

空格(与 [\t\n\v\f\r ] 相同)

[[:upper:]]

否定 ASCII 字符类

ASCII(与 \x00-\x7F] 相同)

Perl 字符类

大写字母(与 [A-Z] 相同)

[[:word:]]

单词字符(与 [0-9A-Za-z_] 相同)

[[:xdigit:]]

十六进制数字(与 [0-9A-Fa-f] 相同)

支持的 Perl 字符类

标点符号(与 [!-/:-@[-`{-~] 相同)

\d

\D