35 lines
887 B
Go
35 lines
887 B
Go
// Filename: internal/utils/parser.go
|
|
package utils
|
|
|
|
import (
|
|
"encoding/json"
|
|
"regexp"
|
|
"strings"
|
|
)
|
|
|
|
// ParseKeysFromText 是一个共享的工具函数,用于从各种格式的文本中解析出密钥列表。
|
|
// 因为它是共享的,所以函数名首字母大写以导出。
|
|
func ParseKeysFromText(text string) []string {
|
|
var keys []string
|
|
if json.Unmarshal([]byte(text), &keys) == nil && len(keys) > 0 {
|
|
var cleanedKeys []string
|
|
for _, key := range keys {
|
|
trimmed := strings.TrimSpace(key)
|
|
if trimmed != "" {
|
|
cleanedKeys = append(cleanedKeys, trimmed)
|
|
}
|
|
}
|
|
return cleanedKeys
|
|
}
|
|
keys = []string{}
|
|
delimiters := regexp.MustCompile(`[\s,;|\n\r\t]+`)
|
|
splitKeys := delimiters.Split(strings.TrimSpace(text), -1)
|
|
for _, key := range splitKeys {
|
|
trimmed := strings.TrimSpace(key)
|
|
if trimmed != "" {
|
|
keys = append(keys, trimmed)
|
|
}
|
|
}
|
|
return keys
|
|
}
|