2016-08-04 100 views
0

我有特殊标签作为“{code}”。我需要使用jflex在两个标签之间获取一些文本。如何使用jflex在特殊标签之间获取文本

我想使用正则表达式如下它

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

的问题是,它总是只返回第一的最后一个标签之间的文本。看起来像?根本不起作用。我需要有只得到

{code}abs{code} 

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

回答

0

有一些不同的选择这里的能力:

如果花括号({)字符不会在你的文字出现,你可以用{code}([^{]+){code}作为你的正则表达式。

如果是这样,它的逃跑了,你可以这样做{code}((?:[^{]|\\{)+){code}。用适当的转义字符替换\\(在这种情况下,我已经按照常规字面反斜线字符的规定)。

如果它出现在标签之间,它不是逃脱,你可能想看看在写一个适当的解析器,因为正则表达式是不是真的削减了这样的事情。

相关问题