Utilizzare le espressioni regolari in Go

Utilizzare le espressioni regolari in Go

Il linguaggio Go fornisce un pacchetto integrato, regexp, per lavorare con le espressioni regolari. Questo pacchetto consente di cercare, confrontare, sostituire e analizzare stringhe usando pattern espressi secondo la sintassi delle espressioni regolari.

Importare il pacchetto

import (
    "fmt"
    "regexp"
)

Compilare un'espressione regolare

Per usare un'espressione regolare, occorre prima compilarla usando regexp.Compile o regexp.MustCompile. Il secondo panica in caso di errore, ed è utile se si è sicuri della validità del pattern.

re := regexp.MustCompile(`\d+`)

Trovare corrispondenze

Una volta compilata, si possono cercare corrispondenze nella stringa:

input := "Ci sono 15 gatti e 3 cani"
match := re.FindString(input)
fmt.Println(match) // Stampa "15"

Ottenere tutte le corrispondenze

Per trovare tutte le sottostringhe che corrispondono al pattern:

allMatches := re.FindAllString(input, -1)
fmt.Println(allMatches) // ["15" "3"]

Sostituire corrispondenze

Si può usare ReplaceAllString per sostituire le corrispondenze con un'altra stringa:

replaced := re.ReplaceAllString(input, "#")
fmt.Println(replaced) // "Ci sono # gatti e # cani"

Usare gruppi di cattura

Le espressioni regolari possono anche catturare gruppi:

re := regexp.MustCompile(`(\d+)\s+(\w+)`)
submatches := re.FindStringSubmatch("10 gatti")
fmt.Println(submatches) // ["10 gatti" "10" "gatti"]

Conclusione

Le espressioni regolari in Go sono uno strumento potente per la manipolazione e l'analisi di stringhe. Il pacchetto regexp è ben integrato e fornisce tutte le funzionalità essenziali per lavorare con i pattern.