📜  Lex程序检查输入是否为数字(1)

📅  最后修改于: 2023-12-03 15:02:40.860000             🧑  作者: Mango

Lex程序检查输入是否为数字

如果我们需要从输入中检查数字,Lex程序是一个非常好的工具。在这个程序中,我们可以使用正则表达式来匹配字符串,并根据匹配情况采取不同的行动。

以下是一个Lex程序,该程序可以检查输入是否为数字:

%{
#include <stdio.h>
%}

%%
[0-9]+   printf("输入是数字\n");
.        printf("输入不是数字\n");
%%

int main() {
    yylex();
    return 0;
}

首先,我们使用两个百分号来定义程序的头部和尾部。在头部定义中,我们可以包含任何标准C代码。

接下来,我们使用正则表达式来定义输入的模式。在上面的程序中,我们使用 [0-9]+ 来匹配数字。如果输入是一个或多个数字,则会打印 "输入是数字"。 . 用于匹配除换行符(\n)以外的任何字符。如果输入不是数字,则打印 "输入不是数字"。

最后,在主函数中,我们调用yylex()函数来运行词法分析程序。这个函数会一直运行,直到我们达到输入的末尾。

这是一个简单而有用的Lex程序,可用于检测输入是否为数字。可以根据需要进行修改和扩展,以匹配任何其他类型的输入。