我正在嘗試以下代碼從字符串中提取帶引號的部分:package mainimport ("fmt")func main(){ var oristr = "This is a \"test string\" for testing only" var quotedstr = "" var newstr = "" var instring = false fmt.Println(oristr) for i,c := range oristr { fmt.Printf("Char number: %d; char: %c\n", i, c); if c = `"` { if instring {instring=false} else {instring=true}} if instring {quotedstr += c} else {newstr += c} } fmt.Printf("Newstr: %s; quotedstr = %s", newstr, quotedstr )}但是,我收到以下錯誤:# command-line-arguments./getstring.go:11:14: syntax error: c = `"` used as value./getstring.go:12:15: syntax error: unexpected newline, expecting { after if clause./getstring.go:14:4: syntax error: unexpected else, expecting }./getstring.go:15:3: syntax error: non-declaration statement outside function body為什么我會收到此錯誤以及如何糾正此錯誤?另外,這種方法可以嗎?還是其他方法可能更好?
1 回答

一只甜甜圈
TA貢獻1836條經驗 獲得超5個贊
這是獲得你想要的東西的最基本的方法。它可以改進得更加健壯等等。
package main
import (
"fmt"
"regexp"
)
func main() {
var oristr = "This is a \"test string\" for containing multiple \"test strings\" and another \"one\" here"
re := regexp.MustCompile(`"[^"]+"`)
newStrs := re.FindAllString(oristr, -1)
for _, s := range newStrs {
fmt.Println(s)
}
}
- 1 回答
- 0 關注
- 157 瀏覽
添加回答
舉報
0/150
提交
取消