我试图从输入字符串中仅获取clientid
和dstid
。这是我尝试的代码:
String input = "User clientId=287372.Dstid=129 Some more text clientId=336263. Dstid=2451. This clientNum=120";
Pattern p = Pattern.compile("(clientId=)(\\d+)(Dstid=)(\\d+)");
Matcher m = p.matcher(input);
StringBuffer result = new StringBuffer();
while (m.find()) {
System.out.print("clint id : " + m.group(1));
System.out.println("Dst id : " + m.group(2));
}
m.appendTail(result);
System.out.println(result);
但是我得到的输出是:
用户clientId = 287372.Dstid = 129,此处为一些文本clientId = 336263。 Dstid = 2451。该客户数量= 120
有什么建议如何解决吗?
最佳答案
请尝试以下正则表达式
(clientId=[0-9]+)[.\s]*(Dstid=[0-9]+)
使用时请确保转义\
Pattern p = Pattern.compile("(clientId=[0-9]+)[.\\s]*(Dstid=[0-9]+)");