2009-12-10 23 views
0

我想在ANTLRWorks中編寫一個字符串匹配規則,並且我需要匹配轉義引號或任何非引號字符。我可以匹配逃脫的引號,但我遇到了其他部分的問題:~'\'' | ~'\"'將最終匹配所有內容,並且~'\'\"'似乎被語法生成器忽略(至少視覺顯示)。什麼序列的人物會得到我想要的東西?如何排除規則中的多個字符?

回答

1

嘗試這樣:

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

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

StringChar 
    : ~('"' | '\\') 
    ; 
+0

我結束了一個非貪婪anychar消耗下去,但是這應該做的很好的回答這個問題。 – RCIX 2009-12-10 21:20:52