FindStringSubmatch

时间:2015-07-28 00:39:43

标签: regex go

我试图使用regexp与or运算符进行一些模式匹配,但我得到了一些奇怪的结果。我已经删除了除了基本要素之外的一切,以显示我的结果的问题。

这是我的代码:

package main

import "fmt"
import "regexp"

func main() {
  authRegexp := regexp.MustCompile("^token=(llll|(.+))$")
  matches := authRegexp.FindStringSubmatch("token=llll")
  fmt.Println("MATCHES", matches, len(matches))
        // MATCHES [token=llll llll ] 3
}

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

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

2 个答案:

答案 0 :(得分:1)

最后一个空值对应(.+),只是表示此匹配组在匹配时未被“点击”。换句话说,它是完全合法的。在您的情况下,使用非捕获组是安全的:(?:.+) - http://play.golang.org/p/MEkkoGqxho

答案 1 :(得分:0)

为什么不使用:

setContentView(R.layout.your_layout_name);

demo

相关问题