Lex est un programme conçu pour générer des analyseurs, également connus sous le nom de tokenizers, qui reconnaissent les motifs lexicaux dans le texte. Lex est l'abréviation de "lexical analysisr generator". Ce code est principalement destiné aux systèmes basés sur Unix. Le code de Lex a été développé à l'origine par Eric Schmidt et Mike Lesk. Bien que Lex soit capable d'effectuer des transformations simples par lui-même, sa fonction principale est de permettre l'analyse lexicale. Cela implique le traitement de séquences de caractères comme le code source afin de créer des séquences de symboles connues sous le nom de tokens qui peuvent être utilisées comme entrée pour d'autres programmes. Lex peut également être utilisé en conjonction avec un analyseur-générateur pour faire de l'analyse lexicale. Par exemple, il est simple d'interfacer Lex avec Yacc (un programme open-source qui génère du code C pour l'analyseur syntaxique),
Lex est propriétaire mais des versions basées sur le code original sont disponibles en open source. Celles-ci comprennent une version simplifiée appelée Flex, un acronyme pour "générateur d'analyseur lexical rapide", ainsi que des composants d'OpenSolaris et de Plan 9.