【发布时间】:2021-08-27 22:08:14
【问题描述】:
解析正则表达式时,Golang 的行为不符合预期。我已经在 regextester 上测试了我的 reg 短语,它似乎按预期工作。这是我的代码:
func main() {
tags := regexp.MustCompile(`[^,\s][^\,]*[^,\s]`).Split("foo, bar, baz", -1)
fmt.Println(tags)
}
Golang,在我的本地环境和操场上,返回 [ , , ] 应该返回 ["foo", "bar", "baz"]
【问题讨论】:
-
所有正则表达式引擎解析正则表达式的方式不同,因为它们是唯一的实现。这里的问题是您使用的是
Split,它期望一个正则表达式匹配分隔符,但您传入一个正则表达式以获得完整匹配。对于Split,正确的正则表达式类似于,\s*。