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[1].
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
- ^ Jeff Atwood. «XRegExp». Besøkt 3. januar 2016.