使用lex正则表达式提取子字符串
是否有可能提取lex
正则表达式的子字符串,就像sed
可以完成的一样?
例如
sed -e 's/[0-9]*([a-z]*)[0-9]*/1/'
将提取foo
从34234foo777
或bar
从123bar456
是否有可能像这样用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