2013-03-27 93 views
1

是否可以使用lex正則表達式提取子字符串,如使用sed可以完成的那樣?使用lex正則表達式提取子字符串

例如

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

將提取從34234foo777barfoo123bar456

是否有可能做到這一點與法是這樣的:

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

不受普通的C解析yytext

回答

0

有使用Yacc的一個解決方案,考慮到[0-9] is numeric and [a-z]是阿爾法

所以你的語法是:

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

字母和數字由法給出