我有以下模式包含n次在文件中:多線正則表達式java或語法?
ENUM CMF_QUOTE_EVENT
CMF_QUOTE_EVENT_Activate "Activate"
CMF_QUOTE_EVENT_Suspend "Suspend"
CMF_QUOTE_EVENT_Delete "Delete"
ENDENUM
我的目標是趕上枚舉的所有值。基本上我需要關鍵字「ENUM」和「ENDENUM」之間的三行。
我試圖使用多線正則表達式,但我仍然無法捕捉它。 這裏是我做到了:
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();
我使用的是語法,而不是想知道,但它看起來很沉重的這隻使用。我可以用正則表達式來做這種事嗎?
謝謝大家
使用'Pattern.DOTALL' – ctwheels
我不會使用這個正則表達式。只是我的觀點。 – duffymo