我尝试使用骆驼的删除标题,该标题适用于某些模式,但不适用于其他模式
适用于以下模式
<removeHeaders pattern="*" />
<removeHeaders pattern="CamelFile*" />
它不适用于
<removeHeaders pattern="*File*" />
以上是否预期?
同样在排除模式中,我观察到通配符模式*根本无法识别。
<setHeader headerName="firstCustomHeader">
<constant>firstCustomHeader</constant>
</setHeader>
<setHeader headerName="secondCustomHeader">
<constant>secondCustomHeader</constant>
</setHeader>
<setHeader headerName="thirdCustomHeader">
<constant>thirdCustomHeader</constant>
</setHeader>
<setHeader headerName="fourthCustomHeader">
<constant>fourthCustomHeader</constant>
</setHeader>
<removeHeaders pattern="*" excludePattern="fourth*|third*" />
以上删除了所有标题但排除了excludePattern值
如何实现上述相关模式?
Camel Version 2.13.1
答案 0 :(得分:3)
您可以使用以下模式完成removeHeaders **文件** :
pattern="\w+File\w+"
同样,您的excludePattern也可以使用以下方法实现:
excludePattern="fourth\w+|third\w+"
这些基本上是可以测试的正则表达式here。
答案 1 :(得分:2)
是使用正则表达式或最后使用单个*
作为
通配符。因此*File*
无效,因为它有两个*
,因此Camel假定它是正则表达式。
所以你应该做一个正则表达式
pattern=".*File.*"
如果您只有一个*
是匹配通配符的简写,但*
必须只有一次且位于该行的末尾,例如
pattern="File*"
语法记录在这里