问题:编写一个Lex程序来检查有效的URL。
解释:
Lex是一种计算机实用程序,可以生成一些词法分析器。 Lex读取字符流作为指定词法分析器的输入,并提供源代码作为使用C编程语言实现词法分析器的输出。
先决条件: Flex(快速词法分析器生成器)
例子:
Input: geeksforgeeks
Output: INVALID URL
Input: https://www.geeksforgeeks.org
Output: VALID URL
执行:
%%
((http)|(ftp))s?:\/\/[a-zA-Z0-9]{2, }(\.[a-z]{2, })
+(\/[a-zA-Z0-9+=?]*)* {printf("\nURL Valid\n");}
.+ {printf("\nURL Invalid\n");}
%%
// driver program
void main()
{
printf("\nEnter URL : ");
yylex();
printf("\n");
}
输出: