猿问

golang中多个字符串字段的Sscanf

我正在尝试使用 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)

}

输出是


input does not match format benson: 


Program exited.


白板的微信
浏览 283回答 1
1回答

MMTTMM

%s贪婪并吞噬到下一个空间,这意味着它会吃掉冒号。处理完之后%s,它会尝试扫描冒号,但是等等,它已经被消耗掉了,下一个字符实际上是一个空格,而不是一个冒号!所以它失败了。在 C 中,您可以通过使用%[^:]而不是来解决这个问题%s,但 Go 似乎不支持这一点。您可能需要找到某种方法来解析不带Sscanf.
随时随地看视频慕课网APP

相关分类

Go
我要回答