Regulære uttrykk er et programmeringsspråk for tekstsøk basert på mønstre. De kan enten benyttes av brukeren i applikasjoner som støtter regulære uttrykk, eller som en del av programkoden til en applikasjon. Regulære uttrykk er som regel et underspråk (et programmeringsspråk som benyttes som en del av andre programmeringsspråk).

Faktaboks

Også kjent som

regular expression regexp, regex

Regulære uttrykk er mye benyttet for inputvalidering, der input sjekkes opp mot mønstre for lovlig (whitelisting) eller ulovlig (blacklisting) input. Også parsing av data baserer seg ofte på regulære uttrykk. Mange av vektøyene for systemadministrasjon og drift er basert på regulære uttrykk fra brukeren for å angi hvordan de skal jobbe, for eksempel hvilke filer som en operasjon skal gjøres på. Dette gjelder spesielt verktøy tilhørende operativsystemene Linux og Unix.

Syntaks

For å angi et regulært uttrykk omslutter man ofte mønsteret med / og /. Sentralt i regulære uttrykk er ulike spesialtegn som forteller noe om antall, tilhørighet eller tegnklasser. De vanligste er:

Spesialtegn Tilsvarer
. Ett tegn
^ Starten av teksten
$ Slutten av teksten
* 0 til mange ganger
+ 1 til mange ganger
? 0 eller en gang
{x,y} Fra x til y ganger
{x} Eksakt x ganger
{x,} Fra x til uendelig antall ganger
{,y} Fra 0 til y antall ganger
\ Escaping (påfølgende tegn skal ikke opptre som spesialtegn)
[...] En klasse (utvalgte tegn)
[^...] En negert klasse (alle tegn unntatt)
\d Samme som [0-9]
\s Samme som [\t\n\r], altså mellomrom, tabulator og ny linje
\w Samme som [a-zA-Z_0-9]

Eksempler

Følgende regulære uttrykk samsvarer med norske standard bilskilt:

/^[A-Z]{2}\-[1-9]{1}[0-9]{4}$/

Følgende regulære uttrykk samsvarer med en nettadresse (ikke alle varianter for å forenkle eksemplet noe):

/^http(s)?:\/\/[a-z0-9\-]+(\.[a-z0-9-]+)*(/.*)?$/

Les mer i Store norske leksikon

Kommentarer

Kommentarer til artikkelen blir synlig for alle. Ikke skriv inn sensitive opplysninger, for eksempel helseopplysninger. Fagansvarlig eller redaktør svarer når de kan. Det kan ta tid før du får svar.

Du må være logget inn for å kommentere.

eller registrer deg