登录
首页 >  Golang >  Go问答

golang正则表达式查找字符串但仅提取其中的子字符串

来源:stackoverflow

时间:2024-04-08 23:36:36 471浏览 收藏

从现在开始,努力学习吧!本文《golang正则表达式查找字符串但仅提取其中的子字符串》主要讲解了等等相关知识点,我会在golang学习网中持续更新相关的系列文章,欢迎大家关注并积极留言建议。下面就先一起来看一下本篇正文内容吧,希望能帮到你!

问题内容

我有两个像这样的字符串

mystr = "xyz/10021abc/f123"
mystr2 = "abc/10021abd/c222"

我想提取 10021abc 和 10021abd。我想出了

r = regexp.mustcompile(`(?:xyz\/|abc\/)(.+)\/`)

但是当我想用这个提取匹配时:

fmt.Println(r.FindString(mystr))

它返回整个字符串。我应该如何更改我的正则表达式?


正确答案


您可以使用FindStringSubmatch

var re = regexp.mustcompile(`(?:xyz\/|abc\/)(.+)\/`)
var s1 = "xyz/10021abc/f123"
var s2 = "abc/10021abd/c222"

fmt.println(re.findstringsubmatch(s1)[1])
fmt.println(re.findstringsubmatch(s2)[1])

https://go.dev/play/p/C93DbfzVv3a

您可以在此处使用正则表达式替换:

var mystr = "xyz/10021abc/f123"
var re = regexp.MustCompile(`^.*?/|/.*$`)
var output = re.ReplaceAllString(mystr, "")
fmt.Println(output)  // 10021abc

文中关于的知识介绍,希望对你的学习有所帮助!若是受益匪浅,那就动动鼠标收藏这篇《golang正则表达式查找字符串但仅提取其中的子字符串》文章吧,也可关注golang学习网公众号了解相关技术文章。

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>