Я использую string.Replace
для замены подстроки A
func removeIP(text string) string {
text = strings.Replace(text, "someWord", "**NewWord**", -1)
return text
}
func removeIPUsingRegex(text string) string {
var re = regexp.MustCompile(`\b` + "someWord" + `\b`) // I want to replace whole word only
text = re.ReplaceAllString(text, "**NewWord**")
}
Проблема, с которой я здесь сталкиваюсь, заключается в том, что я хочу заменить целое слово, только если не поддерживается замена строки.
Поскольку я должен заменить очень очень большие строки могут быть в ГБ. Regex очень медленный по сравнению со строкой replace.
например: text: "abcdef defgh /def/ .def/ =def= def xxxy"
-> Replace def
с DEF
output: "abcdef defgh /DEF/ .DEF/ =DEF= DEF xxxy"
// Обратите внимание, что были заменены только целые слова.
Regex увеличивает время почти в 100 раз (https://medium.com/codezillas/golang-replace-vs-regexp-de4e48482f53). Любые идеи будут высоко оценены.