使用 JEXL 评估字符串时使用不同的引号

Use different quotation mark when evaluating a string using JEXL

要求 是使用 JEXL 从具有字符串参数的文件中评估 java 方法,如下所示:

object.method("argument");

但是,有时我的字符串参数用不同的引号写成:

object.method(«argument»);

根据 JEXL 文档,我可以使用单引号 ' 或双引号 ",但我的法语 guillemet 不行: https://commons.apache.org/proper/commons-jexl/reference/syntax.html#Literals

执行此操作的一种方法是首先清理我的文件,替换所有不同的引号并始终使用相同的引号。

是否有任何其他可能的方法来改变这种行为?

您绝对应该将法语 guillemets 替换为受支持的语法之一 (quote/double-quote)。 如果您绝对必须坚持这个(奇怪的)约定并且是 able/willing 到 fork/build 您拥有本地版本的 JEXL,则必须更改 Javacc 语法以接受这个新的 'string' 语法。 http://svn.apache.org/viewvc/commons/proper/jexl/tags/COMMONS_JEXL_3_1/src/main/java/org/apache/commons/jexl3/parser/Parser.jjt?view=markup#l244

附近的某个地方