簡體   English   中英

Golang regexp問題與FindStringSubmatch

[英]Golang regexp issue with FindStringSubmatch

我試圖使用regexp與or運算符進行某種模式匹配,但結果有些奇怪。 我已經去除了除必需品以外的所有內容,以顯示結果中的問題。

這是我的代碼:

包主

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

matchs數組的長度為3,而我認為它的長度應該為2。最后一個值是一個空字符串。 我不明白為什么這樣做。 這是golang的錯誤嗎? 如何提交golang錯誤?

最后一個空值對應於(.+) ,僅表示此捕獲組在匹配時未“命中”。 換句話說,這是完全合法的。 在您的情況下,可以使用非捕獲組代替: (?:.+) -http (?:.+) //play.golang.org/p/MEkkoGqxho

為什么不只是使用:

^token=(llll)$

演示

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM