いくつかの正規表現をファイルに入れ、セミコロン(または何か)で区切った別の式、つまり:
orderNumber:* completionStatus;orderNumber:X completionStatus
ログファイルがあります。
.... orderNumber:123 completionStatus...
そして私はそれらを次のように見せたい:
.... orderNumber:X completionStatus...
Javaでこれを行うにはどうすればよいですか?
(キー:正規表現、値:置換)を使用してマップを作成し、ログファイルを読み取り、各行でキーを一致させてみましたが、出力は同じように見えます。
FileInputStream fstream = new FileInputStream(file);
// Get the object of DataInputStream
DataInputStream in = new DataInputStream(fstream);
BufferedReader br = new BufferedReader(new InputStreamReader( in ));
FileWriter fstreamError = new FileWriter(myFile.replace(".", "Replaced."));
BufferedWriter output = new BufferedWriter(fstreamError);
while ((strFile = br.readLine()) != null) {
for (String clave: expressions.keySet()) {
Pattern p = Pattern.compile(clave);
Matcher m = p.matcher(strFile); // get a matcher object
strFile = m.replaceAll(expressions.get(clave));
System.out.println(strFile);
}
}
これについて何か考えはありますか?