登录
首页 >  Golang >  Go问答

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

来源:stackoverflow

时间:2024-03-31 14:33:35 427浏览 收藏

知识点掌握了,还需要不断练习才能熟练运用。下面golang学习网给大家带来一个Golang开发实战,手把手教大家学习《将多个月份字符串替换为月份整数》,在实现功能的过程中也带大家重新温习相关知识点,温故而知新,回头看看说不定又有不一样的感悟!

问题内容

我正在使用如下字符串:

"1月5日,2月,12月6日=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 个不同的正则表达式测试之外,是否有更简单的方法来执行此操作?


解决方案


使用 strings.ToLower() 降低字符串,然后您可以使用带有 12 个月的单个 strings.Replacer,这可以在一个“步骤”中完成所有可能的替换:

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

今天关于《将多个月份字符串替换为月份整数》的内容就介绍到这里了,是不是学起来一目了然!想要了解更多关于的内容请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>