我是go
新手,我的数据如下Time Server Type Class Method-Message
。在json field delimiter" |"的帮助下设法得到以下数据Time|Server|Type|Class|Method-Message
我要分割 - 在第四个索引|Method-Message
然后附加一个字段分隔符" |"然后加入以结束以下Time|Server|Type|Class|Method|Message
。尝试使用n = s[6 : 6+strings.Index(s[6:], "/")]
分割数据,删除-Message
然后以Time|Server|Type|Class|Method
结束然后我追加字段分隔符然后以Time|Server|Type|Class|Method|Message|
结束,但无法附加从数据中删除的-Message
。
答案 0 :(得分:6)
我不确定原始字符串中没有strings.Index(s[6:], "/")
字符时您使用/
的原因,但可以替换和
-
角色有几种方式:
原始尝试拆分和加入两次:
msg := "Time Server Type Class Method-Message"
msg = strings.Join(strings.Split(msg, " "), "|")
msg = strings.Join(strings.Split(msg, "-"), "|")
或者稍微提高效率,只加入一次:
msg := "Time Server Type Class Method-Message"
parts := strings.Split(msg, " ")
parts = append(parts[:4], strings.Split(parts[4], "-")...)
newMsg := strings.Join(parts, "|")
或多次调用strings.Replace
:
newMsg := strings.Replace(strings.Replace(msg, " ", "|", -1), "-", "|", -1)
或使用单个正则表达式:
newMsg := regexp.MustCompile(`[ -]`).ReplaceAllString(msg, "|")