你如何匹配字串ello w中hello world
嘗試這個例子時遇到了這個錯誤
package main
import (
"fmt"
"regexp"
)
func check(result string ) string {
if (regexp.MatchString("b\\ello w\\b",result)) {
fmt.Println("Found it ")
return "True"
} else {
return "False"
}
}
func main() {
text := "Hello world "
check (text)
}
拋出以下錯誤
# command-line-arguments
.\test.go:14:5: multiple-value regexp.MatchString() in single-value context
uj5u.com熱心網友回復:
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)
}
uj5u.com熱心網友回復:
MatchString() 回傳 2 個值,一個 bool 和一個錯誤,因此您的 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))
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/339724.html
標籤:走
下一篇:通過反映包名來運行包中的函式
