سؤال

أحاول كتابة قاعدة مطابقة سلسلة في AntlrWorks، وأحتاج إلى مطابقة إما اقتباسات هرب أو أي حرف غير اقتباس. يمكنني مطابقة اقتباسات هارب ولكن أواجه مشكلة مع الجزء الآخر: ~'\'' | ~'\"' سوف ينتهي مطابقة كل شيء و ~'\'\"' يبدو أنه يتم تجاهله من قبل مولد القواعد (على الأقل العرض المرئي). ما تسلسل الشخصيات سوف تحصل لي ما أريد؟

هل كانت مفيدة؟

المحلول

جرب شيئا مثل هذا:

StringLiteral
    :    '"' (EscapeSequence | StringChar)* '"'
    ;

EscapeSequence
    :    '\\' ('"' | '\\')
    ;

StringChar
    :    ~('"' | '\\')
    ;
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top