获取Golang正则表达式中括号内的所有子字符串
我想使用正则表达式获取所有括号内的所有子字符串。
作为字符串“ foo(bar)foo(baz)golang”的示例,我想要“ bar”和“ baz”
在python中我可以做 re.findall("(?<=\()[^)]+(?=\))", "foo(bar)foo(baz)golang")
怎么做呢?
回答:
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比赛.*?\)
太\)
匹配文字)
去游乐场演示
以上是 获取Golang正则表达式中括号内的所有子字符串 的全部内容, 来源链接: utcz.com/qa/435390.html