Golang正则表达式无法匹配字节10

时间:2014-10-16 22:43:06

标签: regex go byte newline

尝试以下方法:

func main(){
    r := regexp.MustCompile(`(.)`)
    for i := 0; i < 255; i++{
        d := []byte{byte(i)}
        all := r.FindAll(d, -1)
        fmt.Println(all)
    }
}

通配符不匹配字节10(即新行字符)。看起来像个bug。我认为正则表达式从来没有真正用于[]字节,但golang提供了[]字节函数,所以这是一种疏忽。

1 个答案:

答案 0 :(得分:6)

您需要通过指定s标志来告诉它与新行匹配:

r := regexp.MustCompile(`(?s)(.)`)

在操场上试试:http://play.golang.org/p/MK-UECa9AV

s标志告诉解析器让.匹配新行。