заменить escape-символ в flex - PullRequest
2 голосов
/ 23 марта 2012

Я использую flex для работы со сканером, чтобы заменить \" на "; и \\ с \.

так что мой код похож на

%%
\\"    \";
\\\    \\;

но при компиляции я получаю сообщение об ошибке типа missing quote. Я думаю, что это правильное регулярное выражение, я ошибся или это что-то особенное в flex?

Ответы [ 2 ]

3 голосов
/ 23 марта 2012

Вы должны экранировать оба символа \ И ".Чтобы соответствовать \", вы используете \\\", а не \\".Для соответствия \\ вы используете \\\\, а не \\\.

Другое дело, что flex соответствует регулярному выражению и затем выполняет код C, который вы поместили в соответствующее действие.Ваш пример не похож на правильные выражения flex.

0 голосов
/ 17 августа 2016

, чтобы соответствовать *, [, ], (, ), ", \, {, } в flex, вы должны использовать escape-символ (не требуется для одинарной кавычки).

...