Lex es un programa de computadora que genera analizadores léxicos y fue escrito por Mike Lesk y Eric Schmidt. Lex lee un flujo de entrada que especifica el analizador léxico y genera el código fuente que implementa el lex en el lenguaje de programación C.
Problema: Tenemos que validar contraseña.
Una contraseña es correcta si contiene:
- Al menos 1 carácter en mayúscula
- Al menos 1 carácter en minúscula
- Al menos 1 dígito
- Al menos 1 carácter especial
- Mínimo 8 caracteres
Ejemplo:
Input: Geeksforgeeks Output: INVALID Input: Geeks@12 Output: VALID
Nota: Las palabras pueden estar formadas por caracteres en minúsculas, caracteres en mayúsculas y dígitos.
A continuación se muestra la implementación para contar el número de palabras.
%{ #include<stdio.h> #include<string.h> int a = 0, b=0, c=0, d=0, l=0; %} %% [a-z] {a++;l++;} [A-Z] {b++;l++;} [0-9] {c++;l++;} [$&+, :;=?@#|'<>.-^*()%!] {d++;l++;} . ; %% int yywrap(void){} int main() { // The function that starts the analysis yylex(); if(a>0 && b>0 && c>0 && d>0 && l>=8) printf("VALID\n"); else printf("INVALID\n"); return 0; }
Producción:
Publicación traducida automáticamente
Artículo escrito por AnmolAgarwal y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA