登录
首页 >  Golang >  Go问答

我的 golang 代码中的 string.Contains 函数无法正确判断字符串包含关系。尽管第一个字符串包含第二个字符串,但条件却失败

来源:stackoverflow

时间:2024-02-21 12:42:24 485浏览 收藏

来到golang学习网的大家,相信都是编程学习爱好者,希望在这里学习Golang相关编程知识。下面本篇文章就来带大家聊聊《我的 golang 代码中的 string.Contains 函数无法正确判断字符串包含关系。尽管第一个字符串包含第二个字符串,但条件却失败》,介绍一下,希望对大家的知识积累有所帮助,助力实战开发!

问题内容

我正在检查 golang 中的一些 shell 命令输出。我需要检查输出是否包含我的输入字符串。

//myinput is a valid string
 stdoutput2,stderr2,err2 := Shellout("some valid shell command | grep "+myinput)
        if(err2!=nil){
        glg.Error("Not able to retrive information from system")
        glg.Error(err2)
        return false
        } else if strings.Contains(strings.TrimSpace(stdoutput2),myinput){
        glg.Info("able to retrive information from system")
        return true
      } else {
                glg.Error("Not able to retrive information from system")
                glg.Error("stdoutput2 after trimming is-->"+strings.TrimSpace(stdoutput2))
                glg.Error("myinput is :"+myinput)
                glg.Error("std error is :"+stderr2)
                return false
        }

这里虽然 stdoutput2 包含 myinput 的值,但我的 else if 条件失败。

最终输出为

无法从系统检索信息。 修剪后的 stdoutput2 是--> name = customcsi-b35f3ea733 我的输入是:customcsi-b35f3ea733

请注意名称和 = 符号之间的空格。这是输出的一部分。

请帮忙解决这个问题。我的golang版本是1.13.5

任何帮助将不胜感激。


解决方案


myinput 末尾是否有换行符?

你可以试试

stdoutput2, stderr2, err2 := Shellout("some valid shell command | grep " + myinput)    
myinput = strings.TrimSpace(myinput)

今天关于《我的 golang 代码中的 string.Contains 函数无法正确判断字符串包含关系。尽管第一个字符串包含第二个字符串,但条件却失败》的内容介绍就到此结束,如果有什么疑问或者建议,可以在golang学习网公众号下多多回复交流;文中若有不正之处,也希望回复留言以告知!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>