为什么我对arp -a 命令产生的流中,使用正则表达式截取mac地址不成功?
代码如下:
try {
process = Runtime.getRuntime().exec(
"arp -a");
bufReader = new BufferedReader(new InputStreamReader(
process.getInputStream()));
bufReadLineString = bufReader.readLine();
while( (bufReadLineString = bufReader.readLine())!=null){
System.out.println(bufReadLineString);
Matcher m=Pattern.compile("([0-9A-F]{2}-[0-9A-F]{2}-[0-9A-F]{2}-[0-9A-F]{2}-[0-9A-F]{2}-[0-9A-F]{2})").matcher(bufReadLineString);
if(m.find()){
a= m.group();
System.out.println(a);
}
}
} catch (Exception c) { }
arp -a 命令如图:该程序就是从下图读出mac地址,但没有成功
------解决方案--------------------[0-9A-F]
这里是大写的,
你dos命令框里面都是小写。。正则区分大小写的
改成
Matcher m=Pattern.compile("(\\w{2}-\\w{2}-\\w{2}-\\w{2}-\\w{2}-\\w{2})").matcher(bufReadLineString);
就好了