如何打印匹配的字符串?

时间:2014-09-21 05:29:20

标签: c regex flex-lexer lex

我真的不熟悉lex / flex。 我正在尝试调试一些传统的flex代码。 我希望看到与特定规则匹配的文本。

例如

[a-z]*      {"some C code"  "need to print the string that matched this rule"}

例如。 如果johndoe@xyz.com是输入,我需要打印匹配的字符串,即johndoe

我尝试打印yytext,但它只显示第一个字符。

1 个答案:

答案 0 :(得分:3)

如果您正在尝试调试,并且您正在使用flex,那么当您将flex输入转换为{{1}时,您可能希望使用-d选项}。这将构建一个调试扫描程序,它将自动报告所有规则匹配(以及其他事件)。

有关详细信息,请参阅flex manual

如果你真的想插入C语句,这应该可以正常工作:

printf