Golang Regex:我如何过滤损失(..):{value}stiring


"([\w|-]+)\s*:\s*((-?\d+)(\.\d+)?)"

我听说这与Golang 中的{}:{}格式匹配

我想捕获loss(...) : {}字符串

例如:

Total: 0:06:53 | ETA: 0:08:26 | loss: 1.1260 | loss_2d: 0.1125 | loss_3d_rel: 0.3900 | loss_3d_abs: 0.1651 | loss_smpl: 0.3662

我想要:

loss: 1.1260
loss_2d: 0.1125
loss_3d_rel: 0.3900
loss_3d_abs: 0.1651
loss_smpl: 0.3662

我不熟悉Regex。。。我如何过滤上面的内容?谢谢

假设您想查找包含loss的所有值,您可能正在查找类似的内容。

package main

import (
"fmt"
"regexp"
)
func main() {
input := `Total: 0:06:53 | ETA: 0:08:26 | loss: 1.1260 | loss_2d: 0.1125 | loss_3d_rel: 0.3900 | loss_3d_abs: 0.1651 | loss_smpl: 0.3662`
re := regexp.MustCompile(`loss(w*):s(d.d*)`)
matches := re.FindAllString(input,-1)

for _,v := range matches {
fmt.Println(v)
}
}

最新更新