Ich bin ziemlich neu zu Klassen in Java, also dachte ich nur, ich würde versuchen, eine einfache Regex-Klasse zu schreiben. Und ich habe versagt.Schreiben einer einfachen Regex-Klasse gibt nur leere Ergebnisse
Hier ist die Klasse
import java.util.ArrayList;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class HRM_SwallowTableExtractor {
String x;
String pattern;
ArrayList<String> myArray = new ArrayList<String>();
public HRM_SwallowTableExtractor(String x,String pattern) {
x=this.x;
pattern=this.pattern;
}
public ArrayList<String> SwallwTabExtract(String x,String pattern) {
Pattern pat = Pattern.compile(pattern);
Matcher matcher_pattern = pat.matcher(x);
while (matcher_pattern.find()) {
String p=matcher_pattern.group(1).trim();
String [] arr=p.split("\\s");
for (int i=0;i<arr.length;i++){
myArray.add(arr[i]);
}
}
return myArray;
}
}
und hier in der Hauptklasse:
String UESRecovTime_pattern="(UES_recovery_time_\\(msec\\).*)";
HRM_SwallowTableExtractor swallTabExtract=new HRM_SwallowTableExtractor(stuff,UESRecovTime_pattern);
Allerdings, wenn ich dies laufe ich nur ein leeres Array zurückgegeben. Ich denke, das Problem ist, dass das Muster nicht gefunden wird (ja, es ist im Textkörper). Ich denke, das hat etwas damit zu tun, wie der Haupttext in die instanziierte Klasse gebracht wird (als String x) oder wie das Pattern instanziiert wird. Ich weiß nicht, wie ich das herausfinden soll. Ich habe den Text nicht geschrieben, den ich benutze, aber glücklich, wenn es gebraucht wird.