Regex forklart: Mestre regulære uttrykk enkelt!

Forstå Regular Expressions (RegEx)

Regex-uttrykk kan føles utfordrende, men de er kraftfulle verktøy. La oss utforske verden av regulære uttrykk og de mønstrene de skaper. Vi skal bryte ned disse tilsynelatende komplekse sekvensene av tegn og forstå betydningen bak hvert enkelt element.

Etter å ha lest denne artikkelen, vil du være i stand til å konstruere dine egne regulære uttrykk og bruke dem effektivt. Vi vil også gi en oversikt over noen nyttige online verktøy for å teste og finjustere dine RegEx-uttrykk.

Introduksjon til RegEx

Regulære uttrykk, ofte forkortet til RegEx, er sekvenser av tegn som danner søkemønstre for å finne spesifikke tegn eller tekststrenger. For eksempel, hvis du vil finne alle forekomster av ordet «eple» i en tekst, kan du bruke RegEx-uttrykket «/eple/». Eller, for å sjekke om en streng inneholder et tall mellom 0 og 9, kan du bruke «/[0-9]/».

Bruksområder for regulære uttrykk

Regulære uttrykk er essensielle i mange moderne nettilknyttede operasjoner. De brukes til å validere data i nettskjemaer, i søkemotorer, i leksikalske analysatorer i integrerte utviklingsmiljøer (IDE-er), og i tekst- og dokumentredigeringsprogrammer. En vanlig handling, som å bruke «CTRL + F» for å finne et bestemt ord i et dokument, er et praktisk eksempel på bruk av regulære uttrykk.

Før vi går videre, la oss se på et vanlig brukt regulært uttrykk:

^([a-zA-Z0-9_-.]+)@([a-zA-Z0-9_-.]+).([a-zA-Z]{2,5})$

Kan du gjette hva dette uttrykket brukes til? Hvis ikke, er det ikke noe problem, du vil sannsynligvis forstå det mot slutten av artikkelen. La oss starte med det grunnleggende.

Forstå Tokens

La oss se nærmere på de forskjellige symbolene eller «tokens» i RegEx-uttrykket ovenfor:

^([a-zA-Z0-9_-.]+)@([a-zA-Z0-9_-.]+).([a-zA-Z]{2,5})$

Dette uttrykket består av en rekke tegn. La oss se på hva de forskjellige symbolene betyr:

Token Betydning
^ Markerer begynnelsen av en streng.
(…) En gruppe som fanger opp innholdet innenfor parentesene.
[…] Klammer rundt tegn som kan matches. [abc] vil for eksempel matche enten a, b eller c.
a-z Små bokstaver fra a til z. Merk at Regex er case-sensitiv.
A-Z Store bokstaver fra A til Z.
0-9 Sifrene fra 0 til 9.
_ Matcher tegnet _.
. Matcher tegnet . bokstavelig. Dette brukes fordi . i Regex er et symbol i seg selv som matcher et hvilket som helst tegn.
+ En kvantifiserer. Matcher ett eller flere av tegnet den brukes med. For eksempel betyr a+ en eller flere forekomster av tegnet a.
Matcher tegnet –
@ Matcher tegnet @.
{} En annen kvantifiserer. Brukes for å angi antall forekomster av et tegn. For eksempel betyr a{3} nøyaktig 3 a-er.
$ Angir slutten av en streng.

Analyse av RegEx-mønsteret

La oss nå prøve å dechiffrere det regulære uttrykket fra tidligere:

  • ^([a-zA-Z0-9_-.]+) betyr at vi ser etter en streng som begynner med minst ett eller flere alfanumeriske tegn, understreker, bindestreker eller prikker. For eksempel vil «brukernavn_01» passe dette mønsteret. Merk at du ikke trenger å inkludere alle symbolene her, bare et enkelt tegn [a-zA-Z0-9_-.] er tilstrekkelig.
  • Tegnet @ matcher en enkelt forekomst av @. I vårt eksempel kan det se ut som «[email protected]».
  • ([a-zA-Z0-9_-.]+) er lik det første punktet. Det indikerer at vi leter etter en streng som inneholder minst ett eller flere alfanumeriske tegn, understreker, bindestreker eller prikker. For eksempel kan det nå se ut som «[email protected]».
  • Som du kanskje har gjettet, ser vi etter et e-postmønster. Videre betyr «.» at vi skal matche tegnet «.». I vårt pågående eksempel kan det nå se ut som «[email protected]».
  • ([a-zA-Z]{2,5})$ betyr at strengen skal slutte med 2 til 5 bokstaver, enten store eller små. Hvis vi legger til «.com» i vårt eksempel, kan vi ende opp med «[email protected]» – et vanlig e-postmønster.

Når vi setter alt dette sammen, ser vi at vi har laget et mønster for en e-postadresse. Dette kan nå brukes for å validere gyldigheten av en e-postadresse. Hvis den testede e-posten stemmer overens med dette mønsteret, kan vi bekrefte at den er gyldig. Dette er et mønster for de fleste vanlige e-postadresser på nettet.

Ulike Typer Tokens

Det finnes mange tokens som kan brukes i ulike kombinasjoner for å skape en rekke komplekse uttrykk. La oss se på de forskjellige kategoriene av tokens og de mest brukte tokens i hver kategori.

Grunnleggende Tokens

Vi starter med grunnleggende tokens. Disse er de mest brukte symbolene som er sentrale i nesten alle regulære uttrykk.

Token Betydning
\r Matcher et vognreturtegn.