我希望下面的代码会找到所有可用的模式标记。我解析 shell 命令iwlist wlp3s0 scanning
,所以总是有多个访问点(重复模式)。我需要以某种方式解析它们。
Scanner s = new Scanner(commandOutput);
String pattern = ".*?Address: (\\S*) .*?Channel:(\\d*) .*?Frequency:(\\S*) .*?Quality=(\\d*)/(\\d*) .*?Signal level=-(\\d*)";
//s.findInLine(pattern);
while(true){
s.findInLine(pattern);
MatchResult result = s.match();
for (int i = 1; i <= result.groupCount(); i++) {
System.out.println(result.group(i));
}
}
但它抛出了这个异常:java.lang.IllegalStateException
.
如何在迭代循环而不是while(true)
异常时检查它是否有更多匹配项?