📅  最后修改于: 2023-12-03 15:02:40.860000             🧑  作者: Mango
如果我们需要从输入中检查数字,Lex程序是一个非常好的工具。在这个程序中,我们可以使用正则表达式来匹配字符串,并根据匹配情况采取不同的行动。
以下是一个Lex程序,该程序可以检查输入是否为数字:
%{
#include <stdio.h>
%}
%%
[0-9]+ printf("输入是数字\n");
. printf("输入不是数字\n");
%%
int main() {
yylex();
return 0;
}
首先,我们使用两个百分号来定义程序的头部和尾部。在头部定义中,我们可以包含任何标准C代码。
接下来,我们使用正则表达式来定义输入的模式。在上面的程序中,我们使用 [0-9]+
来匹配数字。如果输入是一个或多个数字,则会打印 "输入是数字"。 .
用于匹配除换行符(\n)以外的任何字符。如果输入不是数字,则打印 "输入不是数字"。
最后,在主函数中,我们调用yylex()函数来运行词法分析程序。这个函数会一直运行,直到我们达到输入的末尾。
这是一个简单而有用的Lex程序,可用于检测输入是否为数字。可以根据需要进行修改和扩展,以匹配任何其他类型的输入。