import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "^(drv:\\d+)(?:[\\s\\S]+?(?:Name|Serial|Port):.*$){3}\\n\\h*(\\[[^\\]]+?])";
final String string = "HDClone 6 Enterprise Edition\n"
+ "Serial: 1111111111\n\n"
+ "Miray Software AG\n"
+ "Gaissacher Str. 18\n"
+ "81371 Munich\n"
+ "Germany\n\n"
+ "Detecting drives.\n"
+ "drv:0 Name: WDC WD40EZRZ-00WN9B0 (4,000,754 MB)\n"
+ " Serial: WD-WCC4E0ESU7YK\n"
+ " Port: 0/1/1/0\n"
+ " [ -, M:, X: ]\n"
+ "To specify this drive, use the following parameters:\n"
+ "-srcdrv:/-dstdrv:0\n"
+ "-srcdrvn:/-dstdrvn:\"WDC WD40EZRZ-00WN9B0\"\n"
+ "-srcdrvn:/-dstdrvn:\"WDC WD40EZRZ-00WN9B0WD-WCC4E0ESU7YK\"\n"
+ "-srvdrvp:/-dstdrvp:0/1/1/0\n\n"
+ "drv:1 Name: ST2000DM001-1CH164 (2,000,399 MB)\n"
+ " Serial: S1E1GA0V\n"
+ " Port: 0/1/1/1\n"
+ " [ S:, T: ]\n"
+ "To specify this drive, use the following parameters:\n"
+ "-srcdrv:/-dstdrv:1\n"
+ "-srcdrvn:/-dstdrvn:ST2000DM001-1CH164\n"
+ "-srcdrvn:/-dstdrvn:ST2000DM001-1CH164S1E1GA0V\n"
+ "-srvdrvp:/-dstdrvp:0/1/1/1\n\n"
+ "drv:2 Name: ST2000DM001-1CH164 (2,000,399 MB)\n"
+ " Serial: S1E1GC0Z\n"
+ " Port: 0/0/0/1\n"
+ " [ B:, P: ]\n"
+ "To specify this drive, use the following parameters:\n"
+ "-srcdrv:/-dstdrv:2\n"
+ "-srcdrvn:/-dstdrvn:ST2000DM001-1CH164\n"
+ "-srcdrvn:/-dstdrvn:ST2000DM001-1CH164S1E1GC0Z\n"
+ "-srvdrvp:/-dstdrvp:0/0/0/1\n\n"
+ "drv:3 Name: WDC WD10EADS-11M2B2 (1,000,205 MB)\n"
+ " Serial: WD-WCAV5D430071\n"
+ " Port: 0/0/2/0\n"
+ " [ -, V: ]\n"
+ "To specify this drive, use the following parameters:\n"
+ "-srcdrv:/-dstdrv:3\n"
+ "-srcdrvn:/-dstdrvn:\"WDC WD10EADS-11M2B2\"\n"
+ "-srcdrvn:/-dstdrvn:\"WDC WD10EADS-11M2B2WD-WCAV5D430071\"\n"
+ "-srvdrvp:/-dstdrvp:0/0/2/0\n\n"
+ "drv:4 Name: KINGSTON SMS200S360G (60,023 MB)\n"
+ " Serial: 50026B72440A6EE7\n"
+ " Port: 0/1/3/0\n"
+ " [ C: ]\n"
+ "To specify this drive, use the following parameters:\n"
+ "-srcdrv:/-dstdrv:4\n"
+ "-srcdrvn:/-dstdrvn:\"KINGSTON SMS200S360G\"\n"
+ "-srcdrvn:/-dstdrvn:\"KINGSTON SMS200S360G50026B72440A6EE7\"\n"
+ "-srvdrvp:/-dstdrvp:0/1/3/0";
final String subst = "";
final Pattern pattern = Pattern.compile(regex, Pattern.MULTILINE);
final Matcher matcher = pattern.matcher(string);
// The substituted value will be contained in the result variable
final String result = matcher.replaceAll(subst);
System.out.println("Substitution result: " + result);
}
}
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for Java, please visit: https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html