Lex is a tool that generates lexical analyzers (scanners) that are used to break input text streams into tokens. It allows rapid development of scanners by specifying patterns and actions in a lex source file. The lex source file contains three sections - definitions, translation rules, and user subroutines. The translation rules specify patterns and corresponding actions. Lex compiles the source file to a C program that performs the tokenization. Example lex programs are provided to tokenize input based on regular expressions and generate output.