gpt4 book ai didi

c - Lex:仅由其他单词的字母组成的最长单词

转载 作者:行者123 更新时间:2023-11-30 15:52:09 25 4
gpt4 key购买 nike

我正在尝试编写 lex 代码,它将一个字符串作为输入,并解析一个长字典文件,以找到该字典中最长的单词,该单词仅由该字符串中的字母组成。字符串中的每个字母可以使用零次或多次,这意味着单词“in”对于“input”有效。这是我到目前为止所拥有的:

%{
#include <stdio.h>
%}

%option noyywrap

%%
[input]+ {
printf("This is the longest I think: %s\n", yytext);
}

.|\n {}
%%

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

但是,这确实没有达到我的预期。这段代码遍历并打印字典中每个单词的匹配部分,所以我得到像“i”、“iu”、“inu”等的输出,而这些显然不是有效的单词。有人知道如何解决这个问题吗?

最佳答案

您可以使用行首和行尾标记作为正则表达式的一部分,以要求匹配整行,而不仅仅是其中的一部分。尝试将正则表达式从 [input]+ 更改为

^[input]+$

然后,您将需要一些单独的逻辑来跟踪迄今为止找到的最长字符串,但从上面的代码来看,我认为这更直接地解决了您手头的问题。

希望这有帮助!

关于c - Lex:仅由其他单词的字母组成的最长单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14666457/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com