import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "Data Transfer Element (\\d+):(Full|Empty)(?: \\(Storage Element (\\d+) Loaded\\):VolumeTag = (\\w+))?";
final String string = "Storage Changer /dev/sg2:2 Drives, 48 Slots ( 0 Import/Export )\n"
+ "Data Transfer Element 0:Full (Storage Element 2 Loaded):VolumeTag = ALF029L5 \n"
+ "Data Transfer Element 1:Empty\n"
+ " Storage Element 1:Full \n"
+ " Storage Element 2:Empty\n"
+ " Storage Element 3:Empty\n"
+ " Storage Element 4:Full \n"
+ " Storage Element 5:Full :VolumeTag=AEF812LV \n"
+ " Storage Element 6:Full :VolumeTag=ALF021L5 \n"
+ " Storage Element 7:Full :VolumeTag=ALF019L5 \n"
+ " Storage Element 8:Full \n"
+ " Storage Element 9:Full :VolumeTag=ALF035L5 \n"
+ " Storage Element 10:Full :VolumeTag=AEF839LV \n"
+ " Storage Element 11:Full :VolumeTag=ALF018L5 \n"
+ " Storage Element 12:Empty\n"
+ " Storage Element 13:Full :VolumeTag=AEF832LV \n"
+ " Storage Element 14:Full :VolumeTag=ALF002L5 \n"
+ " Storage Element 15:Full :VolumeTag=ALF020L5 \n"
+ " Storage Element 16:Full :VolumeTag=ALF016L5 \n"
+ " Storage Element 17:Full :VolumeTag=AEF831LV \n"
+ " Storage Element 18:Full \n"
+ " Storage Element 19:Full :VolumeTag=AEF814LV \n"
+ " Storage Element 20:Full :VolumeTag=ALF010L5 \n"
+ " Storage Element 21:Full :VolumeTag=ALF022L5 \n"
+ " Storage Element 22:Full :VolumeTag=ALF001L5 \n"
+ " Storage Element 23:Full :VolumeTag=AEF830LV \n"
+ " Storage Element 24:Full :VolumeTag=ALF008L5 \n"
+ " Storage Element 25:Full :VolumeTag=ALF038L5 \n"
+ " Storage Element 26:Full \n"
+ " Storage Element 27:Full :VolumeTag=ALF034L5 \n"
+ " Storage Element 28:Full :VolumeTag=ALF009L5 \n"
+ " Storage Element 29:Full :VolumeTag=AEF821LV \n"
+ " Storage Element 30:Full :VolumeTag=ALF013L5 \n"
+ " Storage Element 31:Full :VolumeTag=AEF822LV \n"
+ " Storage Element 32:Full :VolumeTag=ALF006L5 \n"
+ " Storage Element 33:Full :VolumeTag=ALF028L5 \n"
+ " Storage Element 34:Full :VolumeTag=AEF813LV \n"
+ " Storage Element 35:Full :VolumeTag=ALF007L5 \n"
+ " Storage Element 36:Full :VolumeTag=ALF012L5 \n"
+ " Storage Element 37:Full :VolumeTag=ALF005L5 \n"
+ " Storage Element 38:Full :VolumeTag=ALF027L5 \n"
+ " Storage Element 39:Full :VolumeTag=ALF025L5 \n"
+ " Storage Element 40:Full :VolumeTag=AEF823LV \n"
+ " Storage Element 41:Full :VolumeTag=ALF036L5 \n"
+ " Storage Element 42:Full :VolumeTag=ALF017L5 \n"
+ " Storage Element 43:Full :VolumeTag=AEF811LV \n"
+ " Storage Element 44:Full :VolumeTag=AEF810LV \n"
+ " Storage Element 45:Full :VolumeTag=ALF024L5 \n"
+ " Storage Element 46:Full :VolumeTag=ALF003L5 \n"
+ " Storage Element 47:Full :VolumeTag=ALF032L5 \n"
+ " Storage Element 48:Full :VolumeTag=ALF039L5 ";
final Pattern pattern = Pattern.compile(regex);
final Matcher matcher = pattern.matcher(string);
while (matcher.find()) {
System.out.println("Full match: " + matcher.group(0));
for (int i = 1; i <= matcher.groupCount(); i++) {
System.out.println("Group " + i + ": " + matcher.group(i));
}
}
}
}
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