为了账号安全,请及时绑定邮箱和手机立即绑定

将多个月份字符串替换为月份整数

将多个月份字符串替换为月份整数

Go
当年话下 2022-07-11 10:24:33
我正在使用如下字符串:"JAN-5,Feb,6 dec=900"我正在寻找用它们各自的月份 int 值替换月份字符串。所以上面将等同于:"1-5,2,6 12=900"我知道使用不区分大小写的正则表达式可能是可行的方法,但是我只看到了如何一次将其应用于一个月的示例,这似乎效率低下,例如:re := regexp.MustCompile(`(?i)jan`) fmt.Println(re.ReplaceAllString("JAN-5,Feb,6 dec=900", "1"))有没有更简单的方法来做到这一点,而不是对字符串应用 12 种不同的正则表达式测试?
查看完整描述

1 回答

?
慕沐林林

TA贡献2016条经验 获得超9个赞

使用降低字符串strings.ToLower(),然后您可以使用strings.Replacer12 个月的单个“步骤”中的所有可能替换:


var r = strings.NewReplacer(

    "jan", "1",

    "feb", "2",

    "mar", "3",

    "apr", "4",

    "may", "5",

    "jun", "6",

    "jul", "7",

    "aug", "8",

    "sep", "9",

    "oct", "10",

    "nov", "11",

    "dec", "12",

)


func main() {

    s := "JAN-5,Feb,6 dec=900"


    s2 := r.Replace(strings.ToLower(s))


    fmt.Println(s2)

}

这将输出(在Go Playground上尝试):


1-5,2,6 12=900


查看完整回答
反对 回复 2022-07-11
  • 1 回答
  • 0 关注
  • 101 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信