gpt4 book ai didi

regex - 使用 golangs 正则表达式解析体育比分

转载 作者:IT王子 更新时间:2023-10-29 02:34:08 27 4
gpt4 key购买 nike

我正在尝试使用 golang 正则表达式解析体育比分,但找不到原因,为什么它不解析所有分数部分,而只解析第一个和最后一个。

package main

import (
"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 个元素?

最佳答案

它返回 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

试试这个代码(sample program is available here):

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"]] 

关于regex - 使用 golangs 正则表达式解析体育比分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29433160/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com