golang中多个字符串字段的Sscanf

Ben*_*son 4 go

我试图使用sscanf来解析多个字符串字段.这是一个示例代码段:

package main

import "fmt"

func main() {
        var name, currency string

    _, err := fmt.Sscanf("transaction benson: dollars", "transaction %s: %s", &name, &currency)

    fmt.Println(err, name, currency)
}
Run Code Online (Sandbox Code Playgroud)

输出是

input does not match format benson: 

Program exited.
Run Code Online (Sandbox Code Playgroud)

ick*_*fay 7

%s贪婪,狼吞虎咽到下一个空间,这意味着它吃掉了结肠.处理后%s,然后尝试扫描冒号,但等待,已经消耗了,下一个字符实际上是一个空格,而不是冒号!所以它失败了.

在C中,你可以通过使用%[^:]而不是使用%s它来解决这个问题,但看起来Go并不支持这个.你可能需要找到一些方法来解析你的字符串Sscanf.