Regexp FindAll with n=0 returns nothing

Cette page n'est pas encore disponible en français, sa traduction est en cours.
Si vous avez des questions ou des retours sur notre projet de traduction actuel, n'hésitez pas à nous contacter.

Metadata

ID: go-best-practices/regexp-zero-results

Language: Go

Severity: Info

Category: Best Practices

Description

Go, invoking the function re.FindAll() with the second argument set to 0 will not return any results.

Non-Compliant Code Examples

import "regexp"

func main () {
    re := regexp.MustCompile("foo(")

    if something {
        re.FindAll([]byte(`seafood fool`), 0)
    }

}
import "regexp"

func main () {

    var re *regexp.Regexp

    res := re.FindAll(something, 0)
}
import "regexp"

func main () {

    re := regexp.MustCompile(`foo.?`)

    res := re.FindAll(something, 0)
}
import "regexp"

func main () {
    var r *regexp.Regexp
    res := r.FindAll(something, 0)
    
    var r2 regexp.Regexp
    res := r2.FindAll(something, 0)

    regexp.MustCompile("foo(").FindAll(nil, 0)
    regexp.MustCompile(`foo.?`).FindAll([]byte(`seafood fool`), -1))

    if something {
        res = r.FindAll(something, 0)
        re.FindAll([]byte(`seafood fool`), -1)
    }

}
https://static.datadoghq.com/static/images/logos/github_avatar.svg https://static.datadoghq.com/static/images/logos/vscode_avatar.svg jetbrains

Seamless integrations. Try Datadog Code Analysis