Lex on ohjelma, jolla generoidaan säännöistä leksikaalisia analysaattoreita, joita usein nimitetään "skannereiksi." Leksikaalinen analyysi tuottaa lähdekoodin sanoista tokeneita, jotka välitetään syntaksianalyysille. Lex ei ole varsinaisesti ohjelmointikieli, vaan koodigeneraattori, joka tuottaa ohjelmakoodia tiettyyn tarkoitukseen.
Lex on POSIX-standardissa määritelty Unix-käyttöjärjestelmien ohjelma, jonka kirjoittivat Mike Lesk ja Eric Schmidt. Ohjelman kuvaus julkaistiin 1975.[1]
Lexistä on myös avoimen lähdekoodin toteutus flex (fast lexical analyser generator), jonka kirjoitti alun perin Jef Poskanzer Ratforilla (Fortran) ja Vern Paxson otti ohjelman ylläpidettäväkseen 1982 ja käänsi sen C:lle 1987 tienoilla.[2]