我有一个在启动时加载routes.xml的Sping Boot 应用程序
在routes.xml中,我有一个包含示例消息的MQ队列源
SOH{123}{345}{4
5
6
}ETXSOH{111}{222}{3
3
3
}ETX
其中SOH =且ETX =
当我收到此消息时,我想将此消息拆分为两部分。
{123}{345}{4
5
6
}
和
{111}{222}{3
3
3
}
目前我正尝试使用
<split>
<tokenize token="(?s)(?<=\u0001)(.*?)(?=\u0003)" regex="true"/>
<to uri="jms:queue:TEST.OUT.Q" />
</split>
我已经测试了这个正则表达式使用在线正则表达式测试仪,它是匹配的。https://regex101.com/r/fU5VVj/1
但当运行代码时,我得到的是#1
SOH
2
ETXSOH
3
ETX
还尝试了令牌和endToken,但不适用于我的情况
<tokenize token="\u0001" endToken="\u0003" />
我的例子可以使用camel route xml吗?如果可以,你能告诉我正确的正则表达式或开始和结束标记吗?
谢谢
1条答案
按热度按时间lpwwtiir1#
看起来camel正则表达式与java正则表达式不同,只是使用下面的示例代码创建了一个新进程