如何使用仅1个捕获组的Regex提取GCP Logging日志中KeyOne后的数字
单捕获组提取方案
你可以直接将固定前缀、分隔符放到正则的非捕获匹配段,仅把需要提取的数字设为唯一捕获组即可,无需使用前后向断言。
适配你场景的可用正则
KeyOne:([0-9]+)\|
匹配逻辑说明
- 正则先匹配固定前缀
KeyOne: - 唯一的捕获组
([0-9]+)仅抓取你需要的数字内容 - 末尾匹配分隔符
|,确保不会误抓其他键的数值 - 用你提供的日志样例
KeyOne:32|KeyTwo:0|KeyThree:|Language:english测试,捕获组1的输出就是你需要的32,完全符合GCP Log Based Metrics的单捕获组限制。
可选兼容版本
如果存在KeyOne出现在日志末尾、后面没有|分隔符的场景,可以改用兼容边界的版本,非捕获分组(?:)不会占用捕获组名额:KeyOne:([0-9]+)(?:\||$)
内容的提问来源于stack exchange,提问作者Kevin Danikowski
相关产品推荐
相关产品推荐

