// @Author gmy 2024/8/7 10:41:00 package utils import ( "github.com/mozillazg/go-pinyin" "regexp" "strings" ) // GenerateIndexCode 指标编码规则:粮油商务网拼音首字母+指标名称拼音首字母,数字、字母保留,特殊字符拿掉 // 例:美湾:9月U:国际大豆进口成本价:期货收盘:张家港 -----> lyswwmw9yUgjddjkcbjqhspzjg func GenerateIndexCode(sourceName string, indexName string) string { indexInitials := getFirstLetter(indexName) // 拼接后过滤特殊字符,保留数字和字母 indexCode := sourceName + indexInitials re := regexp.MustCompile(`[^a-zA-Z0-9]`) indexCode = re.ReplaceAllString(indexCode, "") // 转换为小写 indexCode = strings.ToLower(indexCode) return indexCode } // 获取字符串中的拼音首字母 func getFirstLetter(s string) string { a := pinyin.NewArgs() p := pinyin.Pinyin(s, a) firstLetters := "" for _, syllables := range p { if len(syllables) > 0 { firstLetters += strings.ToUpper(syllables[0][:1]) } } return firstLetters }