Regulært uttrykk
Denne artikkelen trenger flere eller bedre referanser for verifikasjon. |
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[1].
Eksempel på regulært uttrykk i JavaScript
[rediger | rediger kilde]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);