如何解决使用RegEx拆分字符串以将子字符串存储在映射中的定界符中以创建键值对
在Go-Lang
我需要从字符串中提取位于两个定界符之间的子字符串,每对定界符将是一个键,而子字符串将是它的值。
一个简单的示例:“可口可乐令人耳目一新只是”
两个定界符:
目标:extractedMap:= map [string] string {“ first”:“ pepsi”,“ second”:“ not”}
我试图捕获两者之间的数据的正则表达式
\<(.*?)\>
提取的每个子字符串如何存储在地图中,可以对其进行迭代以存储提取的子字符串
解决方法
Go没有直接方法来查找所有匹配项并将其作为地图返回。您可以使用regexp包中的FindAllStringSubmatch来获取所有匹配项和范围。这是一个例子
str := "Coca Cola is refreshing < pepsi > is simply < not >"
r := regexp.MustCompile(`\<(.*?)\>`)
matches := r.FindAllStringSubmatch(str,-1)
for _,match := range matches {
if len(match) > 1 {
fmt.Println("Found match: ",match[1])
}
}
// Output
// Found match: pepsi
// Found match: not
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。