Antlr Lexer和Parser用于在另一个表达式中捕获exressions

时间:2018-01-11 18:04:12

标签: antlr4

我需要从文本中获取文本))。实际上非常简单的例子,但给了我很大的痛苦。

以下是示例文本,它是一个电子邮件模板:

{!Account.Name} 

Hi hi there {!Account.Id + 'cool'}. 

Very interesting stuff - {!Contact.Description} 

Now we get {!Contact.Description + Contact.Email__c}

所以我需要像Account.Name那样出现所有文本,但只有那些在开头的内容" {!"并关闭"}"标签

最简单/最初的方法是什么?请注意,在最后一行的情况下,我需要获得两个出现,Contact.Description和Contact.Email__c。

非常感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

我只会对{...}块进行纯文本搜索,并使用简单的表达式解析器解析其内容。不要试图找到一个获取所有文本的解析器,并且必须准备好处理可能出现在块外的任何垃圾(这可能会导致安全问题)。