From f6afd1c142e2171bff6589cbfc94bd633a5236f6 Mon Sep 17 00:00:00 2001 From: Liang Ding Date: Mon, 21 Nov 2022 00:21:04 +0800 Subject: [PATCH] =?UTF-8?q?:art:=20=E7=AE=80=E5=8C=96=E6=90=9C=E7=B4=A2?= =?UTF-8?q?=E5=91=BD=E4=B8=AD=E7=BB=93=E6=9E=9C=E9=AB=98=E4=BA=AE=E5=AE=9E?= =?UTF-8?q?=E7=8E=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- kernel/search/mark.go | 26 +++++--------------------- 1 file changed, 5 insertions(+), 21 deletions(-) diff --git a/kernel/search/mark.go b/kernel/search/mark.go index e858f3fa5..92b209a1e 100644 --- a/kernel/search/mark.go +++ b/kernel/search/mark.go @@ -78,7 +78,7 @@ func SplitKeyword(keyword string) (keywords []string) { return } -func EncloseHighlighting(text string, keywords []string, openMark, closeMark string, caseSensitive bool) string { +func EncloseHighlighting(text string, keywords []string, openMark, closeMark string, caseSensitive bool) (ret string) { ic := "(?i)" if caseSensitive { ic = "(?)" @@ -92,26 +92,10 @@ func EncloseHighlighting(text string, keywords []string, openMark, closeMark str } } re += ")" + ret = text + if reg, err := regexp.Compile(re); nil == err { - text = reg.ReplaceAllStringFunc(text, func(s string) string { - return openMark + s + closeMark - }) - } else { - for _, k := range keywords { - k = regexp.QuoteMeta(k) - var repls, words []string - if re, err := regexp.Compile(ic + k); nil == err { - words = re.FindAllString(text, -1) - } else { - re, _ := regexp.Compile(ic + regexp.QuoteMeta(k)) - words = re.FindAllString(text, -1) - } - for _, word := range words { - repls = append(repls, word, openMark+word+closeMark) - } - replacer := strings.NewReplacer(repls...) - text = replacer.Replace(text) - } + ret = reg.ReplaceAllStringFunc(text, func(s string) string { return openMark + s + closeMark }) } - return text + return }