在 RegExp 匹配 Golang 中排除模式

Exclude pattern in RegExp match Golang

我需要在 Golang 中提取一部分字符串用于 Google Data Studio 中的仪表板。这是字符串:

ABC - What I need::Other Information I do not need

为了获得连字符和第一个冒号之间的部分,我尝试了 ([\-].*[\:]),其中包括连字符和冒号。

对于更有经验的 RegExp 用户来说,这可能是一个简单的问题,但我如何才能只匹配中间的单词?

你可以使用这个:

-(.*?):

这里第一个捕获组就是你想要的结果。 Example

示例来源:( run here )

package main

import (
    "fmt"
    "regexp"
)

func main() {
    var re = regexp.MustCompile(`(?m)-(.*?):`)
    var str = `ABC - What I need::Other Information I do not need`
    rs:=re.FindStringSubmatch(str)
    fmt.Println(rs[1])

}