如何在go中使用带有regexp.MatchString()的单词边界(\ b)

时间:2015-10-14 14:16:55

标签: regex go word-boundary

我使用函数regexp.matchString()将正则表达式匹配到我的字符串。我必须使用单词边界才能找到完全匹配。例如,我想匹配“计算”但不匹配“计算机”。问题是我的字符串将同时具有“计算”和“计算机”。所以我想使用单词边界。我尝试在一对在线go-regex测试仪中使用\ b并且它有效。但是,\ b似乎不适用于regexp.matchString()函数。有没有人知道是否有替代\ b?或者我怎样才能得到预期的结果? 我的代码

package main

import "fmt"
import "regexp"

func main() {
    fmt.Println("Hello, playground")
    brandName := "home;compute furniture;computer"
    filterVal := "(?i)compute\b"
    regexMatch, _ := regexp.MatchString(filterVal, brandName)
    fmt.Println(regexMatch)
}

当我使用\ b时,此函数返回false。请帮忙

1 个答案:

答案 0 :(得分:4)

双引号经常吞下\。始终使用raw strings和regexps,SQL等。

filterVal := `(?i)compute\b`

游乐场:http://play.golang.org/p/ePzZf5uLtw