Я создаю файл lexer.l, который работает как предполагалось, за исключением одной части. У меня есть правило:Регуляция регулярных выражений на escape-последовательностях с lex
[\(\*.*\*\)] {}
, который я хочу сделать это так, когда я сталкиваюсь (* this is a test *)
в файле, я просто ничего не делать с ним. Однако когда я забегаю lex lexer.l
, я получаю предупреждение по строкам с правилами \(
, \*
и \)
, заявляя, что они никогда не будут выполнены. Поэтому, я думаю, мой вопрос в том, почему [\(\*.*\*\)] {}
вмешиваться в \(
и другие? Как я могу поймать (* this is a test *)
?
Обратите внимание, что '(* вы будете *) иметь проблемы (* с этим *)', так как ваше регулярное выражение будет захватывать все: от '(* you' до' this *) '. –
@WashingtonGuedes Я сомневаюсь, что lex поддерживает ленивые кванторы ... –
@WashingtonGuedes спасибо, избавление от скобок, безусловно, является решением. почему '?'? –