Ich habe das folgende Muster enthalten n-mal in einer Datei:Multiline Regex Java oder Grammatik?
ENUM CMF_QUOTE_EVENT
CMF_QUOTE_EVENT_Activate "Activate"
CMF_QUOTE_EVENT_Suspend "Suspend"
CMF_QUOTE_EVENT_Delete "Delete"
ENDENUM
Mein Ziel ist es, alle Werte der Enumeration zu fangen. Grundsätzlich brauche ich die drei Zeilen zwischen den Keywords "ENUM" und "ENDENUM".
Ich habe versucht, eine Multiline Regex dafür zu verwenden, aber ich kann es immer noch nicht abfangen. Hier ich es tat:
BufferedReader br = new BufferedReader(new FileReader(file));
String line = "";
StringBuilder sb = new StringBuilder();
while ((line = br.readLine()) != null)
{
sb.append(line.replace("\\s",""); // delete tabs and ws
}
Pattern pattern= Pattern.compile("ENUM(.*)(.|\\s)*ENDENUM", Pattern.MULTILINE);
Matcher match = pattern.matcher(sb.toString());
while (match.find())
{
// do something
}
br.close();
Ich frage mich stattdessen eine Grammatik, aber es sieht für diesen nur Gebrauch sehr schwer. Kann ich so etwas mit einer Regex machen?
Danke all
Verwenden 'Pattern.DOTALL' – ctwheels
Ich würde dafür keine Regex verwenden. Nur meine Meinung. – duffymo