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 eine Zeichenfolge erstellen, die alle Metazeichen regulärer Ausdrücke maskiert den angegebenen Text mit Hilfe der Funktion QuoteMeta() . Die zurückgegebene Zeichenfolge dieser Funktion ist ein regulärer Ausdruck, der mit dem Literaltext übereinstimmt. Diese Funktion 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 QuoteMeta(str string) string

Beispiel 1:

// Go program to illustrate how to create
// a string that escapes all regular
// expression metacharacters
package main
  
import (
    "fmt"
    "regexp"
)
  
// Main function
func main() {
  
    // Escaping all regular
    // expression metacharacters
    // Using QuoteMeta () function
    res1 := regexp.QuoteMeta(`String 1: .+*()|[]{}^$`)
    fmt.Println(res1)
  
    res2 := regexp.QuoteMeta(`String 2: +()*`)
    fmt.Println(res2)
  
    res3 := regexp.QuoteMeta(`String 3: []|{}$`)
    fmt.Println(res3)
  
    res4 := regexp.QuoteMeta(`String 4: ^$*-,`)
    fmt.Println(res4)
  
}

Ausgabe:

String 1: \.\+\*\(\)\|\[\]\{\}\^\$
String 2: \+\(\)\*
String 3: \[\]\|\{\}\$
String 4: \^\$\*-,

Beispiel 2:

// Go program to illustrate how to create
// a string that escapes all regular
// expression metacharacters
package main
  
import (
    "fmt"
    "regexp"
)
  
// Main function
func main() {
  
    // Creating and initializing string
    // Using shorthand declaration
    s1 := `+*?()|[]^$`
    s2 := `+*?()|[]^$
    `
    if s1 == s2 {
  
        // Escaping all regular
        // expression metacharacters
        // Using QuoteMeta () function
        res := regexp.QuoteMeta(s1)
        fmt.Println("String:", res)
          
    } else {
  
        fmt.Println("Not Equal")
    }
  
}

Ausgabe:

Not Equal