Expression rationnelle

Page d'aide sur l'homonymie Pour les articles homonymes, voir régulier et rationnel.

Une expression rationnelle ou expression normale [1] ou expression régulière, est, en informatique, une chaîne de caractères, que l’on appelle parfois un motif, 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 rationnelles sont aujourd’hui utilisées par les informaticiens dans l’édition et le contrôle de texte ainsi que dans la manipulation des langues formelles que sont les langages de l’informatique.

Origine

L’origine et la justification mathématique des expressions rationnelles se situent dans la théorie des automates et des langages formels. Ces champs d’étude couvrent des modèles de calcul (automates) et des façons de décrire et de classifier des langages formels. Un langage formel est ici simplement défini comme un ensemble de chaînes de caractères.

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, notion qu’il a introduite avec une certaine notation. En 1959, Michael Rabin et Dana Scott proposent le premier traitement mathématique et rigoureux de ces concepts dans un article célèbre qui leur vaut le Prix Turing et qui contribue à faire démarrer l’étude de ces langages.

Ken Thompson a mis en œuvre cette notation dans l’éditeur qed, puis l’éditeur ed sous Unix, et finalement dans grep. Depuis lors, les expressions rationnelles 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… Ils reposent sur la bibliothèque regex, ou la bibliothèque PCRE qui est plus puissante.

Les expressions rationnelles ont été mises en œuvre à une époque où les caractères se confondaient avec les octets. Des variantes existent dans bash, perl, ICU ( Unicode, où les caractères sont codés sur 2, 4 ou un nombre variable d’octets).

Other Languages
العربية: تعبير نمطي
български: Регулярен израз
Esperanto: Regula esprimo
hrvatski: Regularni izraz
íslenska: Regluleg segð
日本語: 正規表現
한국어: 정규 표현식
македонски: Регуларен израз
Mirandés: Spresson Regular
norsk bokmål: Regulært uttrykk
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