嗨,我有一个用户订阅一个主题并接收字节消息。
我要完成的任务是从转换后的字符串下面提取值。
我用来转换字节消息的代码如下:
if (message instanceof BytesMessage){
BytesMessage byteMessage = (BytesMessage) message;
byte[] byteData = null;
try {
byteData = new byte[(int) byteMessage.getBodyLength()];
byteMessage.readBytes(byteData);
byteMessage.reset();
}catch (JMSException e){
e.printStackTrace();
}
String stringMessage = new String(byteData);
System.out.println(stringMessage);
}
stringMessage我们显示如下:
我想分别提取每个值,如下所示。但是现在我还不知道该怎么做。任何人都可以帮我吗?2179032 TradeId701118403 clearedTradeUsi SW005285900447503296#已清除TradeUsiIssuer 1010051.zzz.cleared.i
TradeId:70111840
clearedTradeUsi:SW005285900447503296
clearedTradeUsiIssuer:1010051
答案 0 :(得分:0)
当您用正则表达式标记问题时,我将提供一些正则表达式解决方案来查找字段。
获取交易ID
TradeId\s?(\d+)
这将允许在id之前添加一个空格,就像其他一些值一样。 \ s?不匹配一个空格。
对于clearedTradeUsi
clearedTradeUsi\s?(\w+)
对于clearedTradeUsiIssuer
clearedTradeUsiIssuer\s?(\d+)
这些正则表达式中的每一个都将与放入第1组的相应ID匹配。