2013-03-27 2 views
1

sed처럼 할 수있는 것처럼 lex 정규 표현식을 사용하여 부분 문자열을 추출 할 수 있습니까? 123bar456lex 정규식을 사용하여 부분 문자열 추출

에서 34234foo777 또는 bar에서 foo을 추출합니다 예를

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

를 들어

는 어떻게 할 수 있음이 같은 렉스와 :

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

일반 C에 의해 yytext을 구문 분석하지 않고 ?

답변

0

[0-9] is numeric and [a-z] 알파

그래서 문법이되는 것을 고려, Yacc에를 사용하는 솔루션이 다음 렉스에 의해 주어진

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

ALPHA 및 숫자

관련 문제