2

是否可以使用正则表达式提取子字符串lex,就像可以使用sed?

例如

sed -e 's/[0-9]*\([a-z]*\)[0-9]*/\1/'

将从中提取或foo34234foo777bar123bar456

是否可以像这样使用 lex 来做到这一点:

[0-9]*\([a-z]*\)[0-9]*     printf("alphabetical substring is %s\n", /*what?? \1 ??*/);

yytext不通过普通 C解析?

4

1 回答 1

0

有一个使用 Yacc 的解决方案,考虑到它[0-9] is numeric and [a-z]是 alpha

所以你的语法是:

stmt : NUMERIC ALPHA NUMERIC    printf("alphabetical substring is %s\n", $2)
     ;

lex 给出的 ALPHA 和 NUMERIC

于 2013-04-01T13:57:48.343 回答