Reguljära uttryck

Den här artikeln behöver källhänvisningar för att kunna verifieras. (2025-11)
Åtgärda genom att lägga till pålitliga källor (gärna som fotnoter). Uppgifter utan källhänvisning kan ifrågasättas och tas bort utan att det behöver diskuteras på diskussionssidan.

Inom datavetenskap är reguljära uttryck (engelska: regular expressions, ofta förkortat regex eller regexp) en notation för att beskriva vissa mängder av strängar. Ett uttryck består av en sträng som följer särskilda syntaxregler. Reguljära uttryck används i många texteditorer och programspråk för sökning och textmanipulation.

Syntax

Den exakta syntaxen för reguljära uttryck kan variera. Men det finns några grundläggande begrepp som är gemensamma för många tillämpningar.

I sin enklaste form är ett reguljärt uttryck ett enskilt tecken som matchar en delsträng som utgör själva tecknet. Exempelvis, det reguljära uttrycket "a" matchar tecknet "a" i ordet "katt". Med hjälp av operatorer kan man bygga ihop uttryck som matchar komplicerade mönster i strängar.

De grundläggande operationerna är:

Dessutom förekommer i de flesta implementationer även:

Exempel

Anta att vi vill hitta ett datum som är inbäddat i en text:

"Anita skulle besöka Alfred klockan 19:20 2012-12-21 för att äta middag."

Vi kan då matcha datumet med uttrycket:

[0-9]+-[0-9]+-[0-9]+ eller, i kortversion: \d+-\d+-\d+

Men det skulle även matcha exempelvis 0-0-0 eller 1234-493456-8645, som inte är korrekta datum. För att matcha ett korrekt datum, begränsat till 1900- och 2000-talet, kan man använda exempelvis:

\b(19|20)\d\d-(0[1-9]|1[012])-(0[1-9]|[12]\d|3[01])\b

Reguljära uttryck i skriptspråk

Skriptspråken Perl, Ecmascript och Tcl har reguljära uttryck semantiskt inbyggda i själva språket, medan de allra flesta programspråk, verktyg och miljöer har någon form av stöd för användandet av reguljära uttryck implementerat.

Källor

  1. ↑ ”re — Regular expression operations” (på engelska). Python documentation. https://docs.python.org/3/library/re.html. Läst 15 juli 2026.

Externa länkar