Et **regulært uttrykk** brukes innen programmering og er en streng som beskriver et sett av strenger – et mønster – som følger gitte syntaksregler. Regulære uttrykk utviklet seg fra teorien om regulære språk. Regulære uttrykk brukes i mange tekstbehandlere og verktøy for å søke etter og manipulere tekst basert på gitte mønstre. I tillegg er det en rekke programmeringsspråk som støtter regulære uttrykk. Språkene C#, Java, JavaScript, Perl, PHP, Python og Ruby understøtter regulære uttrykk, med noe variasjon i hva som implementeres mellom språkene.

Språket Perl ble utviklet med regulære uttrykk som en sentral komponent i språket, og mange andre språk har lånt fra Perl ved å implementere støtte for biblioteket PCRE (Perl-compliant Regular Expressions). JavaScript mangler "lookbehind"-støtte, men dette kan komme med i en fremtidig versjon av JavaScript (EcmaScript 2016), da det er lagt inn forslag for å legge til slik funksjonalitet. I tillegg mangler JavaScript en god del attråverdig syntaktisk sukker man finner i Perl som gjør det enklere å jobbe med kode som gjør utstrakt bruk av regulære uttrykk, men mesteparten av dette kan nå enkelt tilføyes etter behov ved å benytte biblioteket XRegExp.

Eksempel på regulært uttrykk i JavaScript
-----------------------------------------

I dette eksemplet benyttes et regulært uttrykk i programmeringsspråket JavaScript for å fjerne emneknagger fra en tekststreng. Funksjonen som benyttes heter replace og bytter ut alle forekomster av et mønster med et nytt mønster i en tekststreng. JavaScript angir regulære uttrykk mellom to skråstreker (/ /), og parametere, som endrer visse egenskaper ved uttrykket, kan angis rett etter den avsluttende skråstreken.

```
/\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\* 
 Variabelen 'tekst' inneholder en tekst med emneknagger (#).
 Vi ønsker ved hjelp av et regulært uttrykk å fjerne alle emneknagger fra
 teksten.
\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*/
var tekst = "#Regulære uttrykk er utrolig #kult!";

/\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*
 \* /#(\S)/g = det regulære uttrykket
 \* 
 \* Argument 1 
 \* / .. / = definerer det regulære uttrykket 
 \* # = alle ord vi ønsker å endre starter med en slik emneknagg
 \* ( .. ) = definerer den delen av strengen vi ønsker å ta vare på
 \* \S = hvilken som helst sekvens av tegn som ikke er mellomrom
 \* g = gjennomfør endringen på alle forekomster av uttrykket (g = "global")
 \* 
 \* Argument 2
 \* $1 = henter ut verdien fra parentesene ( ) definert over
 \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*/

tekst = tekst.replace(/#(\S)/g, "$1");

/\*\* "Regulære uttrykk er utrolig kult!" skrives til konsollen \*\*/
console.log(tekst);

```

Referanser
----------

1. ↑  Jeff Atwood. «XRegExp». Besøkt 3. januar 2016.

|  |  |
| --- | --- |
| Oppslagsverk/autoritetsdata | GND **·** LCCN **·** BNF **·** BNF (data) **·** NDL **·** NKC
 |