测试代码选项!

ooohk · 2026-01-05 20:32 · 110 次浏览 · 0 人赞同
type TagRule struct {
    TagName  string   // 最终显示的标签,例如 "Optimized"
    Keywords []string // 触发词,例如 ["三网优化", "9929", "4837", "cmin2"]
}

// 模拟主机圈的规则库
var Rules = []TagRule{
    {"Virtualization", []string{"kvm", "openvz", "lxc", "vmware"}},
    {"Route", []string{"cn2", "gia", "9929", "bgp", "anycast"}},
    {"Security", []string{"ddos", "cc", "waf", "防火墙", "清洗"}}, // 结合你的安全背景
    {"Price", []string{"年付", "月付", "溢价", "传家宝", "aff"}},
}

func MatchTags(content string) []string {
    content = strings.ToLower(content) // 归一化处理
    var matched []string
    
    // 这里可以用简单的遍历,也可以上 AC 自动机优化性能
    for _, rule := range Rules {
        for _, k := range rule.Keywords {
            if strings.Contains(content, k) {
                matched = append(matched, rule.TagName)
                break // 命中一个关键词就给该规则的 Tag,防止重复
            }
        }
    }
    return matched
}

> 2

共 2 条回复

ooohk · 2026-01-06 03:33
表情
ooohk · 2026-01-06 04:05
表情