Regulært uttrykk

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 

Kategori:Programmering
Kategori:Programmeringselementer
Kategori:Teoretisk informatikk
Kategori:Formelle språk