Du kan ju slå ihop de regexpar som skall ge samma utresultat för att få lite mindre kod, sen behöver du inte definera upp nya objekt för varje matchning, du kan använda ursprungsobjekten:
String input = (String) result.elementAt(1);
Pattern p = Pattern.compile("<(.|\n)+?>");
Matcher m = p.matcher(input);
input = m.replaceAll(" ");
p = Pattern.compile("(<(.|\n)+)|((.|\n)>)|(\\+[0-9]{1,3})");
m = p.matcher(input);
input = m.replaceAll("");
p = Pattern.compile("( )|( closing time event type 1 X 2 )");
m = p.matcher(input);
input = m.replaceAll("\n");
Har jag många rader som är någorlunda lika så tycker jag det är snyggare att lägga ut det i en egen metod och sen skicka in parametrar till den, typ så här:
String input = (String) result.elementAt(1);
input = foo(input, "<(.|\n)+?>", " ");
input = foo(input, "(<(.|\n)+)|((.|\n)> )|(\\+[0-9]{1,3})", "");
input = foo(input, "( )|( closing time event type 1 X 2 )", "\n");
private String foo(String pInput, String pPattern, String pReplace)
{
/** kan lägga följande 3 rader på en rad, men sånt blir ofta lite för rörigt */
Pattern p = Pattern.compile(pPattern);
Matcher m = p.matcher(pInput);
return m.replaceAll(pReplace);
}