2016-08-04 98 views
0

我有特殊標籤作爲「{code}」。我需要使用jflex在兩個標籤之間獲取一些文本。如何使用jflex在特殊標籤之間獲取文本

我想使用正則表達式如下它

CODE_BLOCK= "{code}"(.*?)"{code}" 

的問題是,它總是隻返回第一的最後一個標籤之間的文本。看起來像?根本不起作用。我需要有隻得到

{code}abs{code} 

{code}abs{code}{code}{code} 

回答

0

有一些不同的選擇這裏的能力:

如果花括號({)字符不會在你的文字出現,你可以用{code}([^{]+){code}作爲你的正則表達式。

如果是這樣,它的逃跑了,你可以這樣做{code}((?:[^{]|\\{)+){code}。用適當的轉義字符替換\\(在這種情況下,我已經按照常規字面反斜線字符的規定)。

如果它出現在標籤之間,它不是逃脫,你可能想看看在寫一個適當的解析器,因爲正則表達式是不是真的削減了這樣的事情。

相關問題