Java TCPdump使用正则表达式解析序列号
我正在创建一个程序,从TCPdump读取数据包,并读取序列号。我正在使用正则表达式,但我的代码不起作用Java TCPdump使用正则表达式解析序列号,java,regex,networking,tcpdump,Java,Regex,Networking,Tcpdump,我正在创建一个程序,从TCPdump读取数据包,并读取序列号。我正在使用正则表达式,但我的代码不起作用 public long getsequencenumber(String Packet){ Pattern P = Pattern.compile("seq.\\d*"); Matcher m = P.matcher(Packet); if(m.matches()){ Pattern num = Pattern.compile("\\d*");
public long getsequencenumber(String Packet){
Pattern P = Pattern.compile("seq.\\d*");
Matcher m = P.matcher(Packet);
if(m.matches()){
Pattern num = Pattern.compile("\\d*");
return Long.getLong(num.matcher(m.group()).group());
}
return -1;
}
以下印刷品-1:
System.out.print(getsequencenumber("BlahBdds seq 1910428391283 ldskgj"));
有什么建议吗?谢谢 使用Matcher#matches
时,匹配完整的字符串
,否则if
语句表达式将计算为false,并且不会提取每次返回-1
的数字。此外,第二个模式
可以通过使用从输入的字符串
中提取数字来完全消除
public long getSequenceNumber(String packet){
Matcher m = Pattern.compile(".*seq.(\\d+).*").matcher(packet);
if (m.matches()) {
return Long.parseLong(m.group(1));
}
return -1;
}
您需要的是和:
输出:
1910428391283
看
1910428391283