Я использую flex для работы со сканером, чтобы заменить \" на "; и \\ с \.
\"
"
\\
\
так что мой код похож на
%% \\" \"; \\\ \\;
но при компиляции я получаю сообщение об ошибке типа missing quote. Я думаю, что это правильное регулярное выражение, я ошибся или это что-то особенное в flex?
missing quote
Вы должны экранировать оба символа \ И ".Чтобы соответствовать \", вы используете \\\", а не \\".Для соответствия \\ вы используете \\\\, а не \\\.
\\\"
\\"
\\\\
\\\
Другое дело, что flex соответствует регулярному выражению и затем выполняет код C, который вы поместили в соответствующее действие.Ваш пример не похож на правильные выражения flex.
, чтобы соответствовать *, [, ], (, ), ", \, {, } в flex, вы должны использовать escape-символ (не требуется для одинарной кавычки).
*
[
]
(
)
{
}