aktualisiert Antwort
regex
String pattern = "([\\s\\S]*?)(!!!Error deploying file)";
Erklärung der obigen Muster.
- *? - ein einzelnes Zeichen zwischen Null und unbegrenzte Zeiten entsprechen
- \ s -
- \ S alle Leerzeichen Charakter entsprechen - passt auf alle Nicht-Leerzeichen
Beispielcode:
String line = "!!!Error deploying file order\\POST_ORDER_UpdateTaxAmountCurrInCo.sql at 22-JUL-16 08:07:Chathura aBhanakana1!!!Error deploying file order\\POST_ORDER_UpdateTaxAmountChathura aBhanakana1AAAAA !!!Error deploying file order\\POST";
String pattern = "([\\s\\S]*?)(!!!Error deploying file)";
// Create a Pattern object
Pattern r = Pattern.compile(pattern);
// Now create matcher object.
Matcher m = r.matcher(line);
while (m.find()) {
String str = m.group(1);
if(str != null && !str.isEmpty()){
System.out.println("Found value: " + str);
}
}
Ausgang
- gefunden Wert: order \ POST_ORDER_UpdateTaxAmountCurrInCo.sql bei 22 -JUL-16 08: 07: Chathura aBhanakana1
- Gefundener Wert: Auftrag \ POST_ORDER_UpdateTaxAmountChathura aBhanakana1AAAAA
Check output here
Split Verfahren unter Verwendung von
Beispielcode:
String line = "!!!Error deploying file order\\POST_ORDER_UpdateTaxAmountCurrInCo.sql at 22-JUL-16 08:07:Chathura aBhanakana1!!!Error deploying file order\\POST_ORDER_UpdateTaxAmountChathura aBhanakana1AAAAA !!!Error deploying file order\\POST";
for (String retval: line.split("!!!Error deploying file")){
System.out.println(retval);
}
Ausgabe:
1) order\POST_ORDER_UpdateTaxAmountCurrInCo.sql at 22-JUL-16 08:07:Chathura aBhanakana1
2) order\POST_ORDER_UpdateTaxAmountChathura aBhanakana1AAAAA
3) order\POST
Check output here
Was wollen Sie hier erreichen? – NAIT
, um den Text zwischen den Textfeldern "!!! Error deploying file" zu erhalten. –
put '. *?' In '()' –