正则表达式支持

编辑

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}

nn+1 或 …​ 或 mx,优先使用更多

x{n,}

n 个或更多 x,优先使用更多

x{n}

正好 nx

x*?

零个或多个 x,优先使用更少

x+?

一个或多个 x,优先使用更少

x??

零个或一个 x,优先使用零

x{n,m}?

nn+1 或 …​ 或 mx,优先使用更少

x{n,}?

n 个或更多 x,优先使用更少

x{n}?

正好 nx

分组

(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 相同)

\v

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

\*

文字 *,对于任何标点字符 *

\123

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

\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:]]

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

[[:word:]]

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

[[:xdigit:]]

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

支持的 Perl 字符类

\d

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

\D

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

\s

空白字符(与 [\t\n\f\r ] 相同)

\S

非空白字符(与 [^\t\n\f\r ] 相同)

\w

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

\W

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