Golang Regex

Golang Regex
Regelmessig uttrykk, ofte kjent som regex, er en sekvens av tegn som definerer og styrer søkemønstre som samsvarer med en spesifikk streng. Regelmessige uttrykk er et veldig nyttig verktøy når du jobber med tekstdata.

Denne artikkelen vil utforske hvordan man jobber med vanlig uttrykk i Go -programmeringsspråket ved hjelp av Build Regexp -pakken.

Golang Regexp -pakke

Golang Regexp -pakken gir deg metoder og verktøy for å søke, filtrere, erstatte, validere og trekke ut strenger ved hjelp av vanlige uttrykk.

For å bruke denne pakken, må vi importere den som:

Importer "regexp"

For å definere vanlige uttrykksmønstre, kan vi bruke noen forhåndsdefinerte mønstre som vist i tabellen nedenfor:

Mønster Beskrivelse
. Match en hvilken som helst enkelt karakter
[ABC] Match A, B eller C
\ S Match en hvitromskarakter. \ t \ n \ f \ r
[A-C] Enhver karakter fra A til C
[^abc] Negere og matche alle tegn bortsett fra A, B og C
\ w Match et ordkarakter
a | b Alternativ operatør. a eller b, foretrekker en
[A-Z0-9] Match enhver karakter fra A til Z eller 0 til 9
\ d Match ethvert siffer mellom 0 til 9
^ I begynnelsen av en tekst eller linje
? Match den tidligere karakteren bare en gang
+ Match den foregående karakteren en eller flere ganger
* Match den foregående karakteren 0 eller flere ganger
$ Match på slutten av teksten

FindString () -metode

FindString () -metoden returnerer den venstre substring som samsvarer med et spesifisert mønster. Hvis ingen kamp blir funnet, returnerer funksjonen en tom streng.

Et eksempelkode er som vist:

Packagemain
import (
"FMT"
"regexp"
)
FUNCMAIN ()
Re: = regexp.MustCompile ("F ([A-Z]+) T")
fmt.Println (re.FindString ("frukt"))
fmt.Println (re.FindString ("Fit"))
fmt.Println (re.FindString ("falsk"))
fmt.Println (re.FindString ("Faith"))
fmt.Println (re.FindString ("Fix"))

I forrige eksempel bruker vi MustCompile -metoden for å kompilere det vanlige uttrykksmønsteret til en optimalisert regex -struktur.

Deretter bruker vi FindString () -metoden for å returnere de matchende strengene. Den forrige koden skal returnere:

frukt
passe
fait

Merk: Funksjonen returnerer tomme strenger hvis det ikke er noen kamp.

FindStringIndex () -metode

Denne metoden returnerer start- og sluttindeksen for den venstre substring matchet med et spesifisert regelmessig uttrykk.

Eksempel:

Packagemain
import (
"FMT"
"regexp"
)
FUNCMAIN ()
Re: = regexp.MustCompile ("F ([A-Z]+) T")
fmt.Println (re.FindStringIndex ("frukt"))

Den forrige koden skal returnere indeksen for det matchende substring. I vårt eksempel kommer koden tilbake fra indeks 0 til 5:

$ go run regex.gå
[0 5]

Erstatningsmetode () metode

Erstatningsmetoden () metoden brukes til å erstatte teksten som samsvarer med et spesifikt mønster. Den returnerer kopien og erstatter alle matchende strenger.

Vi kan illustrere denne metoden ved å bruke følgende kode:

Packagemain
import (
"FMT"
"regexp"
)
FUNCMAIN ()
Re: = regexp.MustCompile ("F ([A-Z]+) T")
fmt.Printf ("%q \ n", re.Erstatning ("frukt", "mat")

Den forrige koden skal erstatte den samsvarende strengen med den spesifiserte verdien. Siden hele strengen samsvarer med det spesifiserte mønsteret, erstatter funksjonen alle tegnene.

Split () -metode

Vi kan dele en streng ved hjelp av Split () -metoden og det spesifiserte mønsteret. Et eksempelkode er som vist:

Packagemain
import (
"FMT"
"regexp"
)
FUNCMAIN ()
Re: = regexp.MustCompile ("U")
fmt.Printf ("%q \ n", re.Split ("frukt", -1))
fmt.Printf ("%q \ n", re.Split ("Torsdag", -2))
fmt.Printf ("%q \ n", re.Split ("funksjon", 2))

Den forrige koden definerer et vanlig uttrykk for å matche et enkelt tegn. Deretter bruker vi Split -metoden for å dele opp den medfølgende strengen i forskjellige underlag der mønsteret samsvarer.

Den resulterende utgangen er som vist:

$ go run regex.gå
["FR" "IT"]
["th" "rsday"]
["F" "nction"]

Konklusjon

Denne opplæringen illustrerer hvordan du kommer i gang med vanlig uttrykk i Go -programmering ved hjelp av REGEXP -pakken. I tillegg ble flere metoder diskutert for å bestemme riktig alternativ for dine behov. Sjekk andre Linux -hint -artikler og dokumentasjonen for å lære flere tips.