gpt4 book ai didi

linux - 将 flex 的命令行参数作为搜索字符串

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:04:19 26 4
gpt4 key购买 nike

我使用 flex(linux/unix 而不是 Adob​​e 类型)来生成小型扫描仪。过去我一直使用静态搜索字符串。我现在想通过 getopt 提供一个字符串来提供命令行提供的搜索字符串,然后能够使用它进行搜索。

旧的搜索方式是:

.*"_"\n      ECHO;

查找以下划线结尾的行。

现在我想这样搜索:

.*<arbitrary string>.*\n    ECHO;

我不知道如何让 flex 接受 <arbitrary string> .我可以通过 getopt 获取它,但我无法让 flex 接受我的语法。

我正在做的是针对我遇到的特殊问题的特殊目的非常有限的 grep。

如有任何帮助,我们将不胜感激。

最佳答案

.*\n { if(strstr(yytext, "arbitrary string")) ECHO; else REJECT; }

如果 yytext 不包含“任意字符串”,则 REJECT 语句将跳到下一条规则。这当然不会提供与搜索字符串在编译时已知时相同的性能。如果您要实现自己的 grep 程序,glibc 中的 regcomp()/regexec() 可能比 flex 更快。

关于linux - 将 flex 的命令行参数作为搜索字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15618107/

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