在SpEL中逃避正则表达式

时间:2012-07-23 12:15:29

标签: java spring spring-el

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

爪哇:

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

Spring-EL,不解析:

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

1 个答案:

答案 0 :(得分:0)

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

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