package utils import ( "regexp" "strings" ) // CleanString 移除所有空白字符 func CleanString(s string) string { fields := strings.Fields(s) return strings.Join(fields, "") } func TruncateString(s string, maxLen int) string { if maxLen <= 0 { return "" } runes := []rune(s) if len(runes) <= maxLen { return s } 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 }