Expression régulière

Page d'aide sur l'homonymie Pour les articles homonymes, voir régulier et rationnel.
[\w\d+.-_]+@[\w\d.-]+\.[a-zA-Z]{2,}
Expression régulière permettant la reconnaissance des adresses électroniques (version simplifiée).
Stephen Cole Kleene, dont les travaux ont fait émerger l'utilisation d'expression régulière.

En informatique, une expression régulière ou expression normale [1] ou expression rationnelle ou motif, est une chaîne de caractères, qui décrit, selon une syntaxe précise, un ensemble de chaînes de caractères possibles. Les expressions rationnelles sont issues des théories mathématiques des langages formels des années 1940. Leur capacité à décrire avec concision des ensembles réguliers explique qu’elles se retrouvent dans plusieurs domaines scientifiques dans les années d’ après-guerre et justifie leur adoption en informatique. Les expressions régulières sont aujourd’hui utilisées pour programmer des logiciels avec des fonctionnalités de lecture, de contrôle, de modification, et d'analyse de textes ainsi que dans la manipulation des langues formelles que sont les langages informatiques.

Ces expressions régulières ont la qualité de pouvoir être décrites par des formules ou motifs, (en anglais patterns) bien plus simples que les autres moyens [2].

Histoire

Dans les années 1940, Warren McCulloch et Walter Pitts ont décrit le système nerveux en modélisant les neurones par des automates simples. Le logicien Stephen Cole Kleene a ensuite décrit ces modèles en termes d’ensembles réguliers, de langages rationnels et d' automates. Il est considéré comme l'inventeur des expressions régulières. En 1959, Michael Rabin et Dana Scott proposent le premier traitement mathématique et rigoureux de ces concepts [3], ce qui leur vaudra le prix Turing en 1976.

Dans ce contexte, les expressions régulières correspondent aux grammaires de type 3 (voir Grammaire formelle) de la hiérarchie de Chomsky ; elles peuvent donc être utilisées pour décrire la morphologie d’une langue.

Ken Thompson a mis en œuvre la notation de Kleene dans l’éditeur qed, puis l’éditeur ed sous Unix, et finalement dans grep. Depuis lors, les expressions régulières ont été largement utilisées dans les utilitaires tels que lex ainsi que dans les langages de programmation nés sous Unix, tels que expr, awk, Perl, Tcl, Python, etc.

En sortant du cadre théorique, les expressions régulières ont acquis des fonctionnalités permettant de décrire des langages non rationnels. Un glissement sémantique s'est ainsi produit : la notion d'expression régulière n'a pas le même sens dans le contexte de l'infomatique appliquée et dans la théorie des langages formels.

Le terme d' expression rationnelle est issu de la théorie des automates finis [4], il est utilisé de manière académique. Les programmeurs utilisent le vocable expressions régulières par influence des mots RegEx et RE et de l'anglais, plus que pour donner un sens spécifique. Le terme expression régulière est considéré comme trompeur dans le monde académique [5].

Other Languages
العربية: تعبير نمطي
български: Регулярен израз
Esperanto: Regula esprimo
hrvatski: Regularni izraz
íslenska: Regluleg segð
日本語: 正規表現
한국어: 정규 표현식
македонски: Регуларен израз
Mirandés: Spresson Regular
português: Expressão regular
Simple English: Regular expression
slovenčina: Regulárny výraz
српски / srpski: Regularni izraz
Türkçe: Düzenli ifade
українська: Регулярний вираз
اردو: ریجیکس
Tiếng Việt: Biểu thức chính quy