当多线时,Golang regexp并不贪心

时间:2017-01-09 13:43:23

标签: regex go

在以下代码playground中:

package main

import (
    "fmt"
    "regexp"
)

func main() {
    s := `aaa
    token
    token
    bbb` 
    R := regexp.MustCompile(`.*token`)
    m := R.FindStringSubmatch(s)
    fmt.Println(len(m)) // 1
    for _, v := range m {
        fmt.Println(v) //    token
    }

    R = regexp.MustCompile(`^.*token`)
    m = R.FindStringSubmatch(s)
    fmt.Println(len(m)) // 0
}

我希望第一个正则表达式匹配

aaa
    token
    token

在第二种情况下它应该是相同的。然而,在第一种情况下,我只得到token而在第二种情况下只得到任何东西。

0 个答案:

没有答案