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