Een reguliere expressie (Regular Expression, afgekort Regex/RegExp) is een taal voor tekstpatronen die met één tekenreeks een reeks strings beschrijft en matcht die voldoen aan bepaalde syntaxisregels. De geschiedenis gaat terug tot het wiskundige model van neuronen dat in de jaren vijftig werd voorgesteld door neuroloog Warren McCulloch en wiskundige Walter Pitts, later stelde wiskundige Stephen Kleene in 1956 op basis daarvan een algebraïsche beschrijving van «reguliere verzamelingen» voor. Ken Thompson, de vader van Unix, implementeerde reguliere expressies eind jaren zestig voor het eerst in de QED-editor, waarna reguliere expressies een kernfunctie werden van de Unix-gereedschapsketen (grep, sed, awk, vi).
In moderne programmeertalen zijn reguliere expressies vrijwel een standaardmogelijkheid — RegExp in JavaScript, de re-module in Python, java.util.regex in Java, de Regex-klasse in .NET, het regexp-pakket in Go bieden allemaal regex-ondersteuning. Reguliere expressies worden breed toegepast in scenario's zoals formuliervalidatie (e-mail/telefoonnummer/ID), tekst zoeken en vervangen (zoeken en vervangen in editors), loganalyse (extraheren van ERROR-logs), webcrawlers (HTML-inhoud extraheren), gegevensopschoning (ETL), route-matching, invoerfiltering en beveiliging (WAF-regels).
Kernbegrippen van reguliere expressies zijn onder andere: tekenklassen (\d cijfers, \w woordtekens, \s witruimte), kwantoren (* nul of meer, + een of meer, ? nul of een, {n,m} opgegeven aantal keren), ankers (^ begin, $ einde, \b woordgrens), groepen (... capture group, (?:...) non-capturing group, (?<name>...) named group), alternatie (|), tekenverzamelingen ([a-z]), lookaround ((?=...) positieve vooruitblik, (?!) negatieve vooruitblik) enz. Het beheersen van regex verhoogt de efficiëntie van tekstverwerking aanzienlijk, maar let ook op het voorkomen van prestatievalkuilen zoals ReDoS.