Я пытаюсь найти регулярное выражение в строке файла .csv, чтобы в итоге я смог сохранить все совпадения в другой файл и потерять все остальные ненужные файлы.
Так что строка в моем файле может выглядеть так:
MachineName, пользователь, IP, VariableData, расположение
VariableData - это то, что я хочу сопоставить, и, если есть совпадение, выведите строку. Я использую шаблон для этого, потому что я хочу только 3 из 10 вариантов VariableData, и из этих 3 они нумеруются по-разному (например, «pc104, pccrt102, pccart65»).
Я пытаюсь сделать это, используя класс сканера, и стараюсь сделать его максимально простым, чтобы я мог его понять. Вот куда я направлялся с этим ... (шаблон не завершен, просто используйте его для тестирования).
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, но нашел только способ сопоставить выражение, но не получить всю строку.
Моей другой мыслью было, может быть, каким-то образом сосчитать строку, содержащую шаблон, а затем вернуться назад и напечатать строку, соответствующую подсчетам.