gpt4 book ai didi

regex - golang regexp查找匹配的字符串

转载 作者:行者123 更新时间:2023-12-01 22:00:33 24 4
gpt4 key购买 nike

我有%s/%s/%s:%s格式的字符串,其中有四个子字符串。前三个子字符串由/分隔,最后一个由:分隔。我想提取单个子字符串。例如:

package main

import (
"regexp"
"fmt"
)

func main() {
re := regexp.MustCompile(".*/.*/.*:.*")
fmt.Println(re.FindAllStringSubmatch("a/b/c-c:d", -1))
}
在上面的程序中,我想要将 abc-cd打印为单独的元素。但是我无法提取各个字段。整个字符串作为 FindAllStringSubmatch返回的数组的第一个元素返回。提取与正则表达式匹配的单个元素的方法是什么?
游乐场链接: https://play.golang.org/p/M1sKGl0n2tK

最佳答案

使用split因为它的模式是固定的,所以您知道它是:分隔的,然后/分隔的正则表达式是昂贵的CPU进程

parts := strings.Split("a/b/c-c:d", ":")
fmt.Println(strings.Split(parts[0], "/"), parts[1])
&(如果您更喜欢使用正则表达式),则还应在开头使用完整匹配的 ^,在结尾使用 $
"^([^/]+)/([^/]+)/([^/]+):([^:]+)$"
例如,这将不匹配 "a/a/b/c-c:d",但将匹配 "a/b/c-c:d"

关于regex - golang regexp查找匹配的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63761964/

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