我试图使用sscanf来解析多个字符串字段.这是一个示例代码段:
package main
import "fmt"
func main() {
var name, currency string
_, err := fmt.Sscanf("transaction benson: dollars", "transaction %s: %s", &name, ¤cy)
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)
%s
贪婪,狼吞虎咽到下一个空间,这意味着它吃掉了结肠.处理后%s
,然后尝试扫描冒号,但等待,已经消耗了,下一个字符实际上是一个空格,而不是冒号!所以它失败了.
在C中,你可以通过使用%[^:]
而不是使用%s
它来解决这个问题,但看起来Go并不支持这个.你可能需要找到一些方法来解析你的字符串Sscanf
.