2 回答

TA贡献1824条经验 获得超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条经验 获得超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 关注
- 204 浏览
添加回答
举报