在Antlr4語法中,我需要匹配正則表達式拉丁語,西里爾語,波蘭語和希臘字母以及特殊字符的幫助。這是我有:Antlr4匹配西裏爾字母,拉丁字母,波蘭字母和希臘字母以及特殊字符?
STRING: ['][\p{L} 0-9\[\]\^\$\.\|\?\*\+\(\)\\~`\[email protected]#%&\-_+={}""<>:;,\/°]*['];
所以我說,一個String
的起始和結束''
。裏面我可以有任何字母(\p{L}
),數字和特殊字符,從'
除外。我已經在regex101.com上測試過了,它正是我想要的。但在Antlr4中它不起作用。相反,我得到的最接近的事是:
['][a-zA-Z0-9 \[\]\^\$\.\|\?\*\+\(\)\\~`\[email protected]#%&\-_+={}""<>:;,\/°]*[']
但問題是,像'Ąłćórżnęł'
不會在我的語言被接受,但它應該是。
我在Antlr4做錯了什麼或者是一個限制?我如何設法讓它在Antlr4中工作?字符串是Lexer規則。
謝謝,但如何在Antlr4中的正則表達式中,我允許字符串中的所有內容除了像''這樣的字符。但我說一個字符串以'?開始並以'結束? – Devid
@Devid檢查我編輯的答案 –
謝謝。在Antlr4中,我是這樣做的:STRING:['](〜['] |'\'\'')* [']; – Devid