在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>
答
您必须转义特殊字符(即& = &
,“= "
)在指定属性值时,一个基于XML的文件,另外,你没有指定replaceAll方法调用的第二个参数。试试这个,
<int:transformer
input-channel="splitTitles"
output-channel="lowercasedTitles"
expression="payload.toLowerCase().replaceAll('[\\p{Punct}&&[^\"|\\]|\\[|+|\\-|:|(|)|_|~|.|,|%|?]]', ' ').trim()">
</int:transformer>