我正在使用如下字符串:"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
- 1 回答
- 0 關注
- 125 瀏覽
添加回答
舉報
0/150
提交
取消