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

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

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

Go
慕后森 2023-02-14 17:32:04
我有两个这样的字符串mystr = "xyz/10021abc/f123" mystr2 = "abc/10021abd/c222"我想提取 10021abc 和 10021abd。我想出了r = regexp.MustCompile(`(?:xyz\/|abc\/)(.+)\/`)但是当我想使用这个来提取匹配项时:fmt.Println(r.FindString(mystr))它返回整个字符串。我应该如何更改我的正则表达式?
查看完整描述

2 回答

?
PIPIONE

TA贡献1829条经验 获得超9个赞

你可以使用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


查看完整回答
反对 回复 2023-02-14
?
慕哥6287543

TA贡献1831条经验 获得超10个赞

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


var mystr = "xyz/10021abc/f123"

var re = regexp.MustCompile(`^.*?/|/.*$`)

var output = re.ReplaceAllString(mystr, "")

fmt.Println(output)  // 10021abc


查看完整回答
反对 回复 2023-02-14
  • 2 回答
  • 0 关注
  • 203 浏览
慕课专栏
更多

添加回答

举报

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