使用lex正则表达式提取子字符串

是否有可能提取lex正则表达式的子字符串,就像sed可以完成的一样?

例如

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

将提取foo34234foo777bar123bar456

是否有可能像这样用lex来做到这一点:

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

没有通过纯C解析yytext


有一个使用Yacc的解决方案,考虑到[0-9] is numeric and [az]是阿尔法

所以你的语法是:

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

法律赋予的ALPHA和NUMERIC

链接地址: http://www.djcxy.com/p/87007.html

上一篇: Extract a substring using lex regular expressions

下一篇: How to extract a substring using regex