Java Regex获取单词后的字符串
我想在下面的内容Java Regex获取单词后的字符串,java,Java,我想在下面的内容 “10-01-2018 10:24:08.006:|=>[DevStatusReq]=0x06”。我想使用正则表达式。 这是我的密码: String margin = LogExtract.extractDataInFile(path, "Margin", "Margin = (.*?) dB"); String devStatusReq = LogExtract.extractDataInFile(path, "DevStatusReq", "[ DevStatusReq ]
“10-01-2018 10:24:08.006:|=>[DevStatusReq]=0x06”
。我想使用正则表达式。
这是我的密码:
String margin = LogExtract.extractDataInFile(path, "Margin", "Margin = (.*?) dB");
String devStatusReq = LogExtract.extractDataInFile(path, "DevStatusReq", "[ DevStatusReq ] = (.*) ");
System.out.println("Margin : " + margin + " | DevStatusReq : " + devStatusReq );
我返回找到的结果的方法如下:
public static String extractDataInFile(String filePath,String element, String filter) {
String result = element + "has not been found ";
try {
BufferedReader bufferedReader = new BufferedReader(new FileReader(filePath));
String line = null;
while ((line = bufferedReader.readLine()) != null) {
if(line.contains(element)) {
element = line;
Pattern pattern = Pattern.compile(filter);
Matcher matcher = pattern.matcher(line);
while (matcher.find()) {
result= matcher.group(1);
}
}
}
bufferedReader.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return result;
}
控制台显示:
Margin : 39 | DevStatusReq : DevStatusReqhas not been found
我在方法的第二次调用中的正则表达式是错误的。你能帮我吗?
谢谢大家!
[]
是构建一组值的特殊字符:
因此[DevStatusReq]
表示以下字母DSR EVTAUSSQ
适合您的模式是\[DevStatusReq\]=(.*)
\
是一个特殊字符,因此需要对其进行转义,代码中的模式将是:
LogExtract.extractDataInFile(路径,“DevStatusReq”,“\\[DevStatusReq\\]=(.*)”代码>
[]
括号在正则表达式中有特殊含义。它们是核心正则表达式的一部分,称为字符类,所以也许你应该重新阅读你的正则表达式指南。