为了账号安全,请及时绑定邮箱和手机立即绑定

去正则表达式 FindAllStringSubmatch

去正则表达式 FindAllStringSubmatch

Go
holdtom 2021-07-09 14:04:03
这是我在 Go 中的代码片段,可以在这里找到http://play.golang.org/p/L1AcgHf3E4。package mainimport (    "fmt"    "regexp")func main() {    reg := regexp.MustCompile("([0-9]+[dh]){2}")    str := "2d3h5d"    fmt.Println(reg.FindAllStringSubmatch(str, -1))}我希望结果是[[2d3h 3h] [3h5d 5d]],但结果是[[2d3h 3h]]。你能解释一下为什么吗?提前致谢。
查看完整描述

1 回答

?
慕虎7371278

TA贡献1802条经验 获得超4个赞

原因是您无法获得重叠的结果。使用支持前瞻的正则表达式引擎,您可以使用技巧:(?=([0-9]+[dh]){2})但 go 语言不支持它。

如果你想获得所有结果,我建议你使用FindAllStringIndex()with([0-9]+[dh])然后确定所有带有偏移量的连续子字符串。


查看完整回答
反对 回复 2021-07-12
  • 1 回答
  • 0 关注
  • 521 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信