2 回答

TA貢獻(xiàn)1824條經(jīng)驗(yàn) 獲得超8個(gè)贊
regexp.MatchString
返回兩個(gè)值。當(dāng)您在if
條件中使用它時(shí),編譯器會(huì)失敗。
您應(yīng)該首先分配返回值,然后處理錯(cuò)誤情況,然后處理匹配情況
順便說一句,您的正則表達(dá)式也有問題,請(qǐng)查看代碼以獲取適合您情況的正確代碼
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貢獻(xiàn)1111條經(jīng)驗(yàn) 獲得超0個(gè)贊
MatchString() 返回 2 個(gè)值,一個(gè)布爾值和一個(gè)錯(cuò)誤,因此您的 if 語句不知道如何處理它。https://pkg.go.dev/regexp#MatchString
在下面的更正中,我只是排除了錯(cuò)誤值,但我建議實(shí)際檢查和處理錯(cuò)誤。
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)注
- 203 瀏覽
添加回答
舉報(bào)