Java matcher.group(1)未返回任何结果
我想从/proc/cpuinfo txt文件中打印一行,比如Processor:RESULT,其中RESULT是matcher.group1。但是我的结果中没有文本,我的问题在哪里?这就是我的/proc/cpuinfo的样子:Java matcher.group(1)未返回任何结果,java,android,design-patterns,matcher,Java,Android,Design Patterns,Matcher,我想从/proc/cpuinfo txt文件中打印一行,比如Processor:RESULT,其中RESULT是matcher.group1。但是我的结果中没有文本,我的问题在哪里?这就是我的/proc/cpuinfo的样子: public class GetProp extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(s
public class GetProp extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
String file_proc = readFile();
TextView tv = (TextView)findViewById(R.id.tv);
tv.setText("Read File contents from SDCARD : \n" + file_proc);
}
public String readFile(){
BufferedReader rdr;
String proc = "";
String line;
int lineNumber = 0;
try {
rdr = new BufferedReader(new FileReader("/proc/cpuinfo"));
while ((line = rdr.readLine()) != null) {
lineNumber++;
Matcher matcher = Pattern.compile("Processor: (.*)").matcher(line);
if (matcher.find()) {
proc = matcher.group(1);
}
}
} catch (Exception e) {
e.printStackTrace();
}
return proc;
}
}
您的正则表达式有两个问题:
正则表达式区分大小写。将其更改为processor,或使用Pattern.compile…,Pattern.CASE\u不区分大小写。
处理器和冒号之间有空格。您应该将正则表达式更改为processor\\s*:*
嗯,使用group1将是一个开始。您可能找不到任何匹配项。检查输入。
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 42
/* etc */