[英]Regexp in Golang not matching
我目前正在使用sqlmock包編寫SQL測試,但是,我一直無法找到一個似乎與我認為是一個相對簡單的表達式相匹配的正則表達式。
我已經在下面的代碼中添加了一個播放網址。 但是,我不確定為什么這些字符串不匹配?
http://play.golang.org/p/I6QZkjkLmj
package main
import (
"fmt"
"regexp"
)
var myExp = regexp.MustCompile(`SELECT count(\*) FROM video_resource WHERE key = $1`)
func main() {
fmt.Println(myExp)
fmt.Println("SELECT count(\\*) FROM video_resource WHERE key = $1")
matched := myExp.MatchString("SELECT count(\\*) FROM video_resource WHERE key = $1")
fmt.Println(matched)
fmt.Printf("%+v", myExp.MatchString("SELECT count(*) FROM video_resource WHERE key = $1"))
}
括號和美元符號在正則表達式中很重要,應該被轉義。
這將使您的第一個布爾值為true:
`SELECT count\(\\\*\) FROM video_resource WHERE key = \$1`
或者這是第二個:
`SELECT count\(\*\) FROM video_resource WHERE key = \$1`
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.