使用正则表达式拆分字符串以将子字符串存储在映射中的分隔符内以创建键值对

在 Go-Lang

我需要从字符串中提取一个位于两个定界符之间的子字符串,每对定界符将是一个键,子字符串将是它的值。

一个简单的例子:“可口可乐令人耳目一新<百事可乐>只是<不是>”

两个分隔符:< 和 >

目标:extractMap:= map[string]string{"first":"pepsi", "second":"not"}

我试图捕获两者之间的数据的正则表达式

\<(.*?)\>

如何将提取的每个子字符串存储在映射中,可以迭代以存储提取的子字符串


料青山看我应如是
浏览 103回答 1
1回答

胡说叔叔

Go 没有直接的方法来查找所有匹配项并将其作为地图返回。您可以使用 regexp 包中的FindAllStringSubmatch来获取所有匹配项和范围。这是一个例子str := "Coca Cola is refreshing < pepsi > is simply < not >"r := regexp.MustCompile(`\<(.*?)\>`)matches := r.FindAllStringSubmatch(str, -1)for _, match := range matches {&nbsp; &nbsp; if len(match) > 1 {&nbsp; &nbsp; &nbsp; &nbsp; fmt.Println("Found match: ", match[1])&nbsp; &nbsp; }}// Output// Found match:&nbsp; &nbsp;pepsi// Found match:&nbsp; &nbsp;not
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go