go - 在 Go 中使用正则表达式来识别常见模式
问题描述
我正在尝试解析这个字符串goats=1\r\nalligators=false\r\ntext=works
。
contents := "goats=1\r\nalligators=false\r\ntext=works"
compile, err := regexp.Compile("([^#\\s=]+)=([a-zA-Z0-9.]+)")
if err != nil {
return
}
matchString := compile.FindAllStringSubmatch(contents, -1)
我的输出看起来像[[goats=1 goats 1] [alligators=false alligators false] [text=works text works]]
我在表达中做错了什么导致 goats=1 也有效?我只想要 [[山羊 1]...]
解决方案
对于另一种方法,您可以改用该strings
包:
package main
import (
"fmt"
"strings"
)
func parse(s string) map[string]string {
m := make(map[string]string)
for _, kv := range strings.Split(s, "\r\n") {
a := strings.Split(kv, "=")
m[a[0]] = a[1]
}
return m
}
func main() {
m := parse("goats=1\r\nalligators=false\r\ntext=works")
fmt.Println(m) // map[alligators:false goats:1 text:works]
}
推荐阅读
- angular - 角日期选择器隐藏显示按钮单击
- jsf - @EJB 在 @ManagedBean 中为空
- linux - 更改配置后 statsinfo 扩展不活动
- css - 将鼠标悬停在一个 DIV 上以缩放另一个 DIV
- amp-html - 我们可以在 amp 页面中添加 Marketo 表单吗?
- tfs - 为什么我的 VSTS 自定义任务通过退出代码 1?
- java - 在 J2SSH 中断开 NETCONF 会话时线程被阻止
- javascript - CSRF - 通过 api 调用询问它是否安全?
- ios - 如何在 IOS 中弯曲折线(谷歌地图)?
- python - sqlite3.OperationalError:没有这样的表:存储