我正在尝试从查询字符串中检索表格(例如,' select foo from bar limit 10
'应该返回' bar
')。
我相信&#39; (?<=\bfrom\\s)(\\w+)
&#39;是我正在寻找的东西,但Go regexp包不支持它。 (http://play.golang.org/p/MJ3DUk6uuC)
答案 0 :(得分:3)
您仍然可以检测到“from xxx
”,而无需通过 not supported 查看前瞻语法re2。
由于您将捕获“from
”,因此您需要将其从结果中删除。
请参阅playground:
r := regexp.MustCompile("(?:\\bfrom\\s)(\\w+)")
res := r.FindAllString(strings.ToLower("select foo from bar limit 10"), 1)
if len(res) != 1 {
panic("unable")
}
i := strings.LastIndex(res[0], " ")
fmt.Println(res[0][i+1:], i)
输出:
bar 4