String 用字符串编号替换映射字符

String 用字符串编号替换映射字符,string,go,integer,String,Go,Integer,我有阿拉伯数字的字符串。如何从地图编号中替换此字符 字符串:000 我的代码: var digitconv = map[string]int{"۰":0, "۱":1, "۲":2, "۳":3, "۴":4, "۵":5, "۶":6, "۷":7, "۸":8, "۹":9} func mai

我有阿拉伯数字的字符串。如何从地图编号中替换此字符

字符串:
000

我的代码:

var digitconv = map[string]int{"۰":0, "۱":1, "۲":2, "۳":3, "۴":4, "۵":5, "۶":6, "۷":7, "۸":8, "۹":9}

func main() {
    num := "000۲۱۷۹۰۰"
    chk, _ := regexp.Match("", num)
    fmt.Println(chk)
}
只需使用:

输出(在上尝试):


不要使用正则表达式。Regex几乎总是错误的工具。只需在for循环中使用
strings.ReplaceAll
,或
strings.Map
strings.Replacer
var digitconv = map[rune]rune{
    '۰': '0', '۱': '1', '۲': '2', '۳': '3', '۴': '4',
    '۵': '5', '۶': '6', '۷': '7', '۸': '8', '۹': '9',
}
num := "000۲۱۷۹۰۰"
fmt.Println(num)

s := strings.Map(func(r rune) rune {
    if r2, ok := digitconv[r]; ok {
        return r2
    }
    return r
}, num)

fmt.Println(s)
000۲۱۷۹۰۰
000217900