浏览代码

:art: 改进虚拟引用和反链提及搜索匹配 Fix https://github.com/siyuan-note/siyuan/issues/6600

Liang Ding 2 年之前
父节点
当前提交
9bd3f1ad2e
共有 1 个文件被更改,包括 2 次插入11 次删除
  1. 2 11
      kernel/search/mark.go

+ 2 - 11
kernel/search/mark.go

@@ -85,7 +85,7 @@ func EncloseHighlighting(text string, keywords []string, openMark, closeMark str
 	}
 	re := ic + "("
 	for i, k := range keywords {
-		k = keyword2regexp(k)
+		k = regexp.QuoteMeta(k)
 		re += "(" + k + ")"
 		if i < len(keywords)-1 {
 			re += "|"
@@ -98,7 +98,7 @@ func EncloseHighlighting(text string, keywords []string, openMark, closeMark str
 		})
 	} else {
 		for _, k := range keywords {
-			k = keyword2regexp(k)
+			k = regexp.QuoteMeta(k)
 			var repls, words []string
 			if re, err := regexp.Compile(ic + k); nil == err {
 				words = re.FindAllString(text, -1)
@@ -115,12 +115,3 @@ func EncloseHighlighting(text string, keywords []string, openMark, closeMark str
 	}
 	return text
 }
-
-func keyword2regexp(k string) string {
-	k = strings.ReplaceAll(k, "*", ".*")
-	k = strings.ReplaceAll(k, "?", ".")
-	k = strings.ReplaceAll(k, "%", ".*")
-	k = strings.ReplaceAll(k, "_", ".")
-	k = strings.ReplaceAll(k, "\\\\", "\\")
-	return k
-}