为了账号安全,请及时绑定邮箱和手机立即绑定

golang中的正则表达式匹配

golang中的正则表达式匹配

Go
慕虎7371278 2022-10-10 16:59:12
你如何匹配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
查看完整描述

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)


查看完整回答
反对 回复 2022-10-10
?
catspeake

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))

    


查看完整回答
反对 回复 2022-10-10
  • 2 回答
  • 0 关注
  • 204 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号