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.