Go-lang使用正则表达式时出错

时间:2015-07-20 13:44:05

标签: regex go

我使用" regexp"正则表达式有点问题。包裹在去。

这个正则表达式应该返回括号内的子串#34; []"

\[(.*?)\]上使用的

@class my-div [button] {应返回[ button, hello ]

所以,在Go中我试过了类似的东西:

re := regexp.MustCompile('\[(.*?)\]')

fmt.Println(re.MatchString(header)) // false

return re.FindString(header) // header = "@class my-div [button] {"

还有:

re := regexp.QuoteMeta("\\\[\(\.\*\?\)\\\]") // <= Changed

fmt.Println(re.MatchString(header)) // false

return re.FindString(header) // header = "@class my-div [button] {"

还有许多其他变种,但仍然无效...

我还尝试使用在线正则表达式测试程序,它完美无缺,所以我真的不明白为什么它不能用于.... http://fiddle.re/57y4c6

游乐场:http://play.golang.org/p/Z_-1EEKgaW

请帮帮我,谢谢你的时间!

1 个答案:

答案 0 :(得分:3)

如果你只是使用原始字符串文字来表示正则表达式,而不是试图双重保留保留字符,那就容易多了。这将正确编译,并且与您发布的fiddle.re示例相同:

re := regexp.MustCompile(`\[(.*?)\]`)