gpt4 book ai didi

go - 在 Golang 中提取部分字符串?

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

我正在学习 Golang,所以我可以重写我的一些 shell 脚本。

我有这样的 URL:

https://example-1.example.com/a/c482dfad3573acff324c/list.txt?parm1=value,parm2=value,parm3=https://example.com/a?parm1=value,parm2=value

我想提取以下部分:

https://example-1.example.com/a/c482dfad3573acff324c/list.txt

在 shell 脚本中我会做这样的事情:

echo "$myString" | grep -o 'http://.*.txt'

在 Golang 中做同样事情的最好方法是什么,只使用标准库?

最佳答案

有几个选项:

// match regexp as in question
pat := regexp.MustCompile(`https?://.*\.txt`)
s := pat.FindString(myString)

// everything before the query
s := strings.Split(myString, "?")[0] string

// same as previous, but avoids []string allocation
s := myString
if i := strings.IndexByte(s, '?'); i >= 0 {
s = s[:i]
}

// parse and clear query string
u, err := url.Parse(myString)
u.RawQuery = ""
s := u.String()

最后一个选项是最好的,因为它将处理所有可能的极端情况。

try it on the playground

关于go - 在 Golang 中提取部分字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38624609/

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