Ein regulärer Ausdruck ist eine Folge von Zeichen, die ein Suchmuster definieren. Die Go-Sprache unterstützt reguläre Ausdrücke. Ein regulärer Ausdruck wird zum Analysieren, Filtern, Validieren und Extrahieren aussagekräftiger Informationen aus großem Text wie Protokollen, der von anderen Programmen generierten Ausgabe usw. verwendet.
In Go regexp können Sie alle regulären Ausdrücke in der angegebenen Zeichenfolge mit finden die Hilfe von FindAllString()Methode. Diese Methode gibt einen Teil aller aufeinanderfolgenden Übereinstimmungen des angegebenen regulären Ausdrucks zurück, wie durch die Beschreibung „Alle“ im Paketkommentar definiert. Oder diese Methode gibt nil zurück, wenn keine Übereinstimmung gefunden wird, und hier gibt count die Anzahl der Teilzeichenfolgen des zurückgegebenen Slice an. Diese Methode ist unter dem regexp-Paket definiert, sodass Sie für den Zugriff auf diese Methode das regexp-Paket in Ihr Programm importieren müssen.

Syntax:

func (re *Regexp) FindAllString(str string, m int) []string

Beispiel 1:

// Go program to illustrate how to find
// all the regexp from the given slice
package main
  
import (
    "fmt"
    "regexp"
)
  
// Main function
func main() {
  
    // Finding all regexp from 
    // the given string
    // Using FindAllString () method
    m := regexp.MustCompile(`geeks.`)
  
    fmt.Println(m.FindAllString("GeeksgeeksGeeks, geeks", -1))
    fmt.Println(m.FindAllString("Hello! geeksForGEEKsgeeks-geeks", 2))
    fmt.Println(m.FindAllString("I like Go language", 0))
    fmt.Println(m.FindAllString("Hello, Welcome", 1))
  
}

Ausgabe:

[geeksG]
[geeksF geeks-]
[]
[]

Beispiel 2:

// Go program to illustrate how to find
// all the regexp from the given slice
package main
  
import (
    "fmt"
    "regexp"
)
  
// Main function
func main() {
  
    // Finding the number from 
    // the given string
    // Using FindAllStrings() method
    s := "I45, like345, Go-234 langu34age"
  
    m := regexp.MustCompile(`[-]?\d[\d]*[\]?[\d{2}]*`)
    res := m.FindAllString(s, 2)
    for _, ele := range res {
        fmt.Println("Number:", ele)
    }
}

Ausgabe:

Number: 45
Number: 345