在SpEL中转义正则表达式

问题描述:

我应该如何转义下面的Java代码,以便我可以在Spring-EL表达式中使用它?在SpEL中转义正则表达式

的Java:

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

春-EL,它不分析:

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

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

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