Escaping Regex in SpEL



我应该如何转义以下Java代码,以便在Spring EL表达式中使用它?

Java:

.replaceAll("[\p{Punct}&&[^"|\]|\[|+|\-|:|(|)|_|~|.|,|%|?]]", " ")

Spring EL,不解析:

<int:transformer 
    input-channel="splitTitles" 
    output-channel="lowercasedTitles" 
    expression="payload.toLowerCase().replaceAll('[\p{Punct}&&[^"|\]|\[|+|\-|:|(|)|_|~|.|,|%|?]]').trim()">
</int:transformer>

在基于XML的文件中指定属性值时,必须转义特殊字符(即&=&amp;,"=&quot;)。此外,您没有为replaceAll方法调用指定第二个参数。试试这个,

<int:transformer 
        input-channel="splitTitles" 
        output-channel="lowercasedTitles" 
        expression="payload.toLowerCase().replaceAll('[\p{Punct}&amp;&amp;[^&quot;|\]|\[|+|\-|:|(|)|_|~|.|,|%|?]]', ' ').trim()">
    </int:transformer>

最新更新