一、要求
查找test.txt文件中的结束时间,如“[结束时间:2021-01-06 13:40:34.634]”,正则表达式为\[结束时间.*\]
。
正则表达式可在网页中进行校验(https://regex101.com/r/fT5DE5/1/):
二、使用网页代码生成工具生成代码进行参看
三、Eclipse中创建工程编写代码
public class saveDataByRules{
public static void main(String args[]){
File file = new File("D:\\test.txt");
File savefile = new File("D:\\log.txt");
FileWriter fw;
BufferedReader reader = null;
try{
reader = new BufferedReader(new FileReader(file));
fw = new FileWriter(savefile);
String tempString =null;
int line =1;
//定义匹配的正则表达式
final String regex = "\\[结束时间.*\\]";
final Pattern pattern = Pattern.compile(regex, Pattern.MULTILINE);
Matcher matcher = null;
//一次读入一行,直到读入null为文件结束
while((tempString = reader.readLine())!= null ){
line++;
matcher = pattern.matcher(tempString);
while(matcher.find()){
//显示行号
System.out.println("line"+line+":");
//输出匹配结果
System.out.println("完整匹配: " + matcher.group(0));
//将匹配结果写入文件中
fw.write(matcher.group(0).toString()+"\r\n");
}
}
reader.close();
fw.close();
}catch(IOException e){
e.printStackTrace();
}finally{
if(reader!=null){
try{
reader.close();
}catch(IOException e){
}
}
}
}
}
四、执行结果
输出的结果:
保存到文件中的数据: