0

我正在开发 Parser ,我想使用正则表达式检查 Yacc 语法。但是好像不行

       // Yacc-like grammar specifications

//        Ligne ::= Expr '\n' {printf("%d \n" , $1)}
//        Expr : Exp '+' Terme {$$ = $1 + $3; } | Terme ;
//        Terme : Terme '*' Facteur  {$$ = $1 * $3; } | Facteur ;  
//        Facteur : '(' Expr ')'  {$$ = $2; } | Chiffre ;  


String YaccProdS = @"($$)+ [=] [$]+[0-9][^']([$]+[0-9])*";
Check = Regex.Match(Text,YaccProdS);
4

1 回答 1

0

如果您只是想获取{}以下内容中的内容,那么它也会对$id和 运算符进行分组。

String YaccProdS = @"(\$+)\s+=\s+(\$+\d+)(\s*([*+\/])\s*(\$+[0-9]+))?"; 

永远记得转义你的特殊字符,比如$.

于 2013-06-11T20:05:24.250 回答