arrays - 使用正则表达式拆分字符串以将子字符串存储在映射中的分隔符内以创建键值对
问题描述
在 Go-Lang
我需要从字符串中提取一个位于两个定界符之间的子字符串,每对定界符将是一个键,子字符串将是它的值。
一个简单的例子:“可口可乐令人耳目一新<百事可乐>只是<不是>”
两个分隔符:< 和 >
目标:extractMap:= 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
推荐阅读
- svg - 调整svg组的路径
- nativescript - tns 预览不适用于带有 nativescript-vue 的 android
- tensorflow - 合并一个 LSTM 模型输出和 VGG 模型输出时出错
- mongodb - mongodb where不存在(减去两个查询结果)
- codeigniter - Codeigniter 验证没有显示任何内容
- mongodb - 将数据从 mongodb 迁移到 hdfs
- stm32 - 在 STOP 模式之前禁用 STM32 HAL IWDG 或 WWDG(看门狗)
- html - 我只想检查我在 Selenium 的 7 个单选按钮列表中选择的一个单选按钮
- java - 使用java从xml中删除包含实体的doctype
- alfresco - 如何为 Alfresco 共享属性页面中的必填字段创建自定义工具提示?