构建 RegEx 表达式
在 IBM® Cloud Logs中,可以通过在对数据建立索引以进行搜索之前应用 RegEx 表达式,使用解析规则来控制数据的结构。
IBM Cloud Logs 使用 Golang 版本。RegEx
RegEx 模式区分大小写。
量词
| 量化器 | 匹配项 |
|---|---|
* |
0 或先前字符或序列的多个匹配项。 |
? |
0 或 1 与先前字符或序列匹配。 |
+ |
1 或先前字符或序列的多个匹配项。 |
{N} |
正好与前一个字符的 N 倍匹配。 |
{N,} |
与前一个字符匹配 N 次或更多次。 |
{N,Z} |
N 与 Z 之间的匹配是前一个字符的 N 与 Z 之间的匹配。 |
字符
| 字符 | 匹配项 |
|---|---|
. |
与任意单个字符匹配。 |
.* |
匹配任何内容。 |
\d |
与 1 个位数匹配。 |
\d* |
匹配 N 个数字。 |
\D |
与除数字以外的任何符号匹配。 |
\w |
与任何字母,数字或下划线匹配。 |
\W |
匹配不是字母,数字或下划线的任何字符。 |
\s |
与空格字符匹配。 |
\S |
与空格,制表符,换行符或回车符以外的任何字符匹配。 |
\s* |
匹配 N 个空格字符。 |
\S |
与任何不是空格的字符匹配。 |
\S* |
匹配非空格的 N 个字符。 |
锚点
| 锚点 | 匹配项 |
|---|---|
\b |
定义字边界。 |
^ |
与字符串或行的开头相匹配。 |
$ |
匹配字符串或行的结尾。 |
分组
| 分组 | 匹配项 |
|---|---|
[ ] |
表示一组字符。 |
( ) |
用于对模式进行分组。 |
[abcd...] |
与方括号中包含的字符的 1 字符匹配。 |
[a-z] |
与 a 到 z 范围内的 1 字符匹配。 |
[^a-z] |
匹配不在 a 到 z 范围内的 1 字符。 |
[....]+ |
与方括号中列出的字符中的 1 个或多个字符匹配。 |
[....]? |
与方括号中列出的那些字符的 1 或 0 字符匹配。 |
[^"]* |
匹配除双引号外的 N 个字符。 |
[^"\s]* |
与 N 个字符匹配,但双引号和空格除外。 |
[^.]* |
匹配 0 或更多非点。 |
指定的捕获组
您可以在 RegEx 表达式中使用指定的捕获组,以根据日志记录中的现有数据定义新字段。
捕获组的格式如下所示:
(?P<fieldName>RegularExpression)
位置
-
?P表示捕获组的开始。 -
必须将
fieldName设置为要添加的字段的名称。 -
RegularExpression表示定义新字段值的 RegEx。RegEx 不必与整个日志匹配。