簡體   English   中英

Golang中的Regexp不匹配

[英]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"))
}

您的正則表達式包含需要轉義的元字符

regexp.MustCompile(`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`

見這里: http//play.golang.org/p/apkker73wr

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM