Я экспериментирую, чтобы изучить flex и хотел бы соответствовать строковым литералам. Мой код в настоящее время выглядит так:
"\""([^\n\"\\]*(\\[.\n])*)*"\"" {/*matches string-literal*/;}
Я боролся с вариациями в течение часа или около того и не могу заставить его работать так, как должно. По сути, я надеюсь сопоставить строковый литерал, который не может содержать новую строку (если он не экранирован) и поддерживает экранированные символы.
Я, вероятно, просто пишу плохое регулярное выражение или несовместимое с flex. Пожалуйста, сообщите!