登录
首页 >  Golang >  Go问答

与正则表达式中的字符串 $ 不匹配

来源:stackoverflow

时间:2024-04-15 21:39:32 171浏览 收藏

本篇文章给大家分享《与正则表达式中的字符串 $ 不匹配》,覆盖了Golang的常见基础知识,其实一个语言的全部知识点一篇文章是不可能说完的,但希望通过这些问题,让读者对自己的掌握程度有一定的认识(B 数),从而弥补自己的不足,更好的掌握它。

问题内容

我正在使用 mongodb 数据库开发 golang 项目。我想从数据库中搜索不区分大小写的字符串,因此我在查询中使用了正则表达式,如下所示:

var result interface{} 
col := ses.DB("testdb").C("coupons")
err = col.Find(bson.M{"code": bson.RegEx{"^" + code + "$", "i"}}}).One(&result)

其中代码为“off$50”,但上述查询不返回结果。当我删除正则表达式时,它会起作用,但在这种情况下,如果我像“off$50”一样通过,它将不起作用。我需要来自数据库的不区分大小写的结果。任何人都可以帮我解决这个问题吗?


解决方案


MongoDB $regex 使用 perl 兼容的正则表达式 (PCRE)。

此类正则表达式中的美元符号 $ 用于匹配行的结尾,类似于插入符 ^ 匹配行的开头。

要匹配文字 $,可以使用反斜杠 \ 将其转义,或者将其括在 [\] 等字符类中。

请注意,因为您将字符串传递给将构建正则表达式的函数,所以您可能还需要转义字符串中的反斜杠,以便它出现在完成的正则表达式中,即在任何地方使用 2 个反斜杠需要一个。

理论要掌握,实操不能落!以上关于《与正则表达式中的字符串 $ 不匹配》的详细介绍,大家都掌握了吧!如果想要继续提升自己的能力,那么就来关注golang学习网公众号吧!

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