go的
regexp软件包不支持零宽度环顾四周。您可以通过以下
regexp.FindAllStringSubmatch()功能利用捕获的分组:
package mainimport ( "regexp" "fmt")func main() { str := "foo(bar)foo(baz)golang" rex := regexp.MustCompile(`(([^)]+))`) out := rex.FindAllStringSubmatch(str, -1) for _, i := range out { fmt.Println(i[1]) }}输出:
barbaz
正则表达式
(([^)]+)):
(
匹配文字(
([^)]+)
匹配串高达旁边)
,并把比赛以捕获组,在这里你可以使用非greeedy比赛.*?)
太)
匹配文字)
去游乐场演示



