Merge branch 'feat-cjy-tag' into dev
This commit is contained in:
commit
3b6d843d12
@ -1,6 +1,9 @@
|
|||||||
package utils
|
package utils
|
||||||
|
|
||||||
import "strings"
|
import (
|
||||||
|
"regexp"
|
||||||
|
"strings"
|
||||||
|
)
|
||||||
|
|
||||||
// CleanString 移除所有空白字符
|
// CleanString 移除所有空白字符
|
||||||
func CleanString(s string) string {
|
func CleanString(s string) string {
|
||||||
@ -18,3 +21,23 @@ func TruncateString(s string, maxLen int) string {
|
|||||||
}
|
}
|
||||||
return string(runes[:maxLen])
|
return string(runes[:maxLen])
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ExtractTags 从文本中提取标签,标签以 # 开头,后面不能直接跟空格
|
||||||
|
func ExtractTags(s string) []string {
|
||||||
|
if len(s) == 0 {
|
||||||
|
return []string{}
|
||||||
|
}
|
||||||
|
re := regexp.MustCompile(`#[^\s#\p{P}]+`)
|
||||||
|
matches := re.FindAllString(s, -1)
|
||||||
|
|
||||||
|
tags := make([]string, 0, len(matches))
|
||||||
|
for _, match := range matches {
|
||||||
|
// 去掉开头的 #,只保留标签内容
|
||||||
|
tag := match[1:]
|
||||||
|
if len(tag) > 0 {
|
||||||
|
tags = append(tags, tag)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return tags
|
||||||
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user