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

使用 golangs regex 解析体育成绩

使用 golangs regex 解析体育成绩

Go
catspeake 2021-09-27 16:44:17
我正在尝试使用 golang regex 来解析体育分数,但找不到原因,为什么它不解析所有分数部分,而只解析第一个和最后一个。package mainimport (    "fmt"    "regexp")func main() {    var FirstQuarterBasketballRegexp = regexp.MustCompile(`^(\d+:\d+)\s\((?:(\d+:\d+)(?:,\s)?)+\)$`)    fmt.Printf("%q\n", FirstQuarterBasketballRegexp.FindAllStringSubmatch("102:72 (28:17, 27:15, 24:14, 23:26)", -1))}它打印一个字符串[["102:72 (28:17, 27:15, 24:14, 23:26)" "102:72" "23:26"]]为什么它在一个切片中只包含 3 个元素?
查看完整描述

1 回答

?
qq_遁去的一_1

TA贡献1725条经验 获得超7个赞

它返回 3 个元素,因为有第 0 个组(整个字符串)和 2 个捕获组:


1.  [0-6]   `102:72`

2.  [29-34] `23:26`

现在,您应该考虑您需要什么,并且只使用您需要的东西。


或许,你正在寻找的(\d+:\d+)那会回来


102:72

28:17

27:15

24:14

23:26

试试这个代码(示例程序可在此处获得):


func main() {

    var FirstQuarterBasketballRegexp = regexp.MustCompile(`\d+:\d+`)

    fmt.Printf("%q\n", FirstQuarterBasketballRegexp.FindAllStringSubmatch("102:72 (28:17, 27:15, 24:14, 23:26)", -1))

}

输出:


[["102:72"] ["28:17"] ["27:15"] ["24:14"] ["23:26"]] 


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

添加回答

举报

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