.csv ファイルの行内で正規表現を見つけようとしているので、最終的にすべての一致を別のファイルに保存し、他のジャンクをすべて失うことができます。
したがって、私のファイルの行は次のようになります: MachineName,User,IP,VariableData,Location
一致させたいのは VariableData です。一致する場合は、その行を出力します。VariableData のバリエーションの 10 のうち 3 つだけが必要であり、それらの 3 つのうち、異なる番号が付けられているため (たとえば、「pc104、pccrt102、pccart65」)、これにパターンを使用しています。
Scanner Class を使用してこれを実行し、理解できるようにできるだけシンプルにしようとしています。これが私がこれに向かっていたところです...(パターンは完全ではありません。テストのためにこのようにしてください)。
import java.io.File;
import java.util.Scanner;
import java.util.regex.Pattern;
public class pcv {
public static void main(String[] args) {
File myFile = new File("c:\\temp\\report.csv");
Pattern myPat = Pattern.compile("pc");
try{
Scanner myScan = new Scanner(myFile);
while(myScan.hasNext()){
if(myScan.hasNext(myPat)){
System.out.println("Test");
}
}
}catch(Exception e){
}
}
}
このコードはループし、.hasNext() メソッドが自分自身をリセットしていると推測します。私は Matcher クラスを少しいじりましたが、式を一致させる方法を見つけただけで、行全体を取得することはできませんでした。
私の他の考えは、パターンを含む行を何らかの形で数えてから、戻ってその数に対応する行を出力することでした。