我试图使用regexp与or运算符进行某种模式匹配,但结果有些奇怪。我已经去除了除必需品以外的所有内容,以显示结果问题。

这是我的代码:

主要包

网址:http://play.golang.org/p/nLtWQQgveY

matches数组的长度为3,而我认为它的长度应该为2。最后一个值是一个空字符串。我不明白为什么这样做。这是golang的错误吗?如何提交golang错误?


最后一个空值对应于(.+),仅表示此捕获组在匹配时未"命中"。换句话说,这是完全合法的。在您的情况下,可以改用非捕获组:(?:.+)-http://play.golang.org/p/MEkkoGqxho


为什么不只使用:

演示