2 回答

TA貢獻1824條經(jīng)驗 獲得超8個贊
regexp.MatchString
返回兩個值。當您在if
條件中使用它時,編譯器會失敗。
您應該首先分配返回值,然后處理錯誤情況,然后處理匹配情況
順便說一句,您的正則表達式也有問題,請查看代碼以獲取適合您情況的正確代碼
https://play.golang.org/p/dNEsa9mIfhE
func check(result string ) string {
// faulty regex
// m, err := regexp.MatchString("b\\ello w\\b",result)
m, err := regexp.MatchString("ello w",result)
if err != nil {
fmt.Println("your regex is faulty")
// you should log it or throw an error
return err.Error()
}
if (m) {
fmt.Println("Found it ")
return "True"
} else {
return "False"
}
}
func main() {
text := "Hello world "
check(text)
}

TA貢獻1111條經(jīng)驗 獲得超0個贊
MatchString() 返回 2 個值,一個布爾值和一個錯誤,因此您的 if 語句不知道如何處理它。https://pkg.go.dev/regexp#MatchString
在下面的更正中,我只是排除了錯誤值,但我建議實際檢查和處理錯誤。
https://play.golang.org/p/awAFxxAMyWl
package main
import (
"fmt"
"regexp"
)
func check(result string ) string {
found, _:= regexp.MatchString(`ello w`,result)
if (found) {
fmt.Println("Found it ")
return "True"
} else {
return "False"
}
}
func main() {
text := "Hello world "
fmt.Println(check(text))
}
- 2 回答
- 0 關(guān)注
- 187 瀏覽
添加回答
舉報