我使用" 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
请帮帮我,谢谢你的时间!
答案 0 :(得分:3)
如果你只是使用原始字符串文字来表示正则表达式,而不是试图双重保留保留字符,那就容易多了。这将正确编译,并且与您发布的fiddle.re示例相同:
re := regexp.MustCompile(`\[(.*?)\]`)