CloudWatch 见解日志解析
CloudWatch insights log parsing
我一直在尝试解析资源 arn ex.(arn:aws:ec2:us-east-1:0123456789:volume/vol-gg4gggs0svevb3000) 以提取 vol-* on CloudWatch logs insights 但无法获得正确的正则表达式模式和所需的结果。
我试过使用下面的模式但没有结果。
parse @message /.[v,o,l].-([0-9][a-z]){0,17}/
在您尝试的模式中,这部分 ([0-9][a-z]){0,17}
重复单个数字 0 到 17 次,紧接着是单个字符 a-z。因此,该特定顺序中的最大字符数为 34。
另请注意,重复捕获组时,组值包含上次迭代的值。在这种情况下,这将是 2 个字符。
这部分 .[v,o,l].
可以写成 .[vol,].
并匹配 3 个字符:一个点可以匹配除换行符之外的任何字符,然后 v
[=15= 中的 1 个] l
或 ,
因为它是一个 character class 并且又是一个可以匹配除换行符之外的任何字符的点
阅读 this page,您要提取的部分应该在命名的捕获组中。
parse @message /(?<volume>vol-[0-9a-z]{17})/
模式匹配
(?<volume>
命名捕获组 volume
vol-
字面匹配
[0-9a-z]{17}
重复 17 次任何列出的字符 class
)
关闭命名组
我一直在尝试解析资源 arn ex.(arn:aws:ec2:us-east-1:0123456789:volume/vol-gg4gggs0svevb3000) 以提取 vol-* on CloudWatch logs insights 但无法获得正确的正则表达式模式和所需的结果。
我试过使用下面的模式但没有结果。
parse @message /.[v,o,l].-([0-9][a-z]){0,17}/
在您尝试的模式中,这部分 ([0-9][a-z]){0,17}
重复单个数字 0 到 17 次,紧接着是单个字符 a-z。因此,该特定顺序中的最大字符数为 34。
另请注意,重复捕获组时,组值包含上次迭代的值。在这种情况下,这将是 2 个字符。
这部分 .[v,o,l].
可以写成 .[vol,].
并匹配 3 个字符:一个点可以匹配除换行符之外的任何字符,然后 v
[=15= 中的 1 个] l
或 ,
因为它是一个 character class 并且又是一个可以匹配除换行符之外的任何字符的点
阅读 this page,您要提取的部分应该在命名的捕获组中。
parse @message /(?<volume>vol-[0-9a-z]{17})/
模式匹配
(?<volume>
命名捕获组volume
vol-
字面匹配[0-9a-z]{17}
重复 17 次任何列出的字符 class
)
关闭命名组