2 回答

TA貢獻2011條經驗 獲得超2個贊
go的regexp包不支持零寬度環(huán)視。您可以利用以下功能利用捕獲的分組regexp.FindAllStringSubmatch():
package main
import (
"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])
}
}
輸出:
bar
baz
正則表達式\(([^)]+)\):
\(
匹配文字(
([^)]+)
匹配子字符串到下一個并將匹配放在捕獲的組中,在這里您也)
可以使用非貪婪匹配.*?\)
\)
匹配文字)

TA貢獻1803條經驗 獲得超6個贊
試試這個:
\((.*?)\)
解釋
代碼示例:
package main
import (
"regexp"
"fmt"
)
func main() {
var re = regexp.MustCompile(`\((.*?)\)`)
var str = `foo(bar)foo(baz)golang`
mt:= re.FindAllStringSubmatch(str, -1)
for _, i := range mt {
fmt.Println(i[1])
}
}
- 2 回答
- 0 關注
- 390 瀏覽
添加回答
舉報