import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "(NAME)((\\s)?:(\\s)?)([ |,| (|)|\\\\|\\.|\\\"|\\w|\\-|\\+]*)((\\s)*?,(\\s)*?)(DESCR)((\\s)?:(\\s)?)([ |,| (|)|\\\\|\\.|\\\"|\\w|\\-|\\+]*)(\\s)(PID)((\\s)?:(\\s)?)([\\w|\\-|\\+|=]+)((\\s)+,(\\s)+)(VID)((\\s)?:(\\s)?)([\\w| ]*)((\\s)+,(\\s)+)(SN)((\\s)?:(\\s)?)([\\w| ]*)";
final String string = "WDL3-4N-C4510-1A#show inventory\n"
+ "NAME: \"Switch System\", DESCR: \"Cisco Systems, Inc. WS-C4510R+E 10 slot switch \"\n"
+ "PID: WS-C4510R+E , VID: V03 , SN: FOX1616GNS8\n\n"
+ "NAME: \"Clock Module\", DESCR: \"Clock Module\"\n"
+ "PID: WS-X4K-CLOCK-E , VID: V01 , SN: NWG161794PT\n\n"
+ "NAME: \"Mux Buffer 1 \", DESCR: \"Mux Buffers for Redundancy Logic\"\n"
+ "PID: WS-X4590-EX= , VID: , SN: NWG16179CP9\n\n"
+ "NAME: \"Mux Buffer 2 \", DESCR: \"Mux Buffers for Redundancy Logic\"\n"
+ "PID: WS-X4590-EX= , VID: , SN: NWG16179C3T\n\n"
+ "NAME: \"Mux Buffer 3 \", DESCR: \"Mux Buffers for Redundancy Logic\"\n"
+ "PID: WS-X4590-EX= , VID: , SN: NWG16179CUN\n\n"
+ "NAME: \"Mux Buffer 4 \", DESCR: \"Mux Buffers for Redundancy Logic\"\n"
+ "PID: WS-X4590-EX= , VID: , SN: NWG16179AXZ\n\n"
+ "NAME: \"Mux Buffer 7 \", DESCR: \"Mux Buffers for Redundancy Logic\"\n"
+ "PID: WS-X4590-EX= , VID: , SN: NWG16179CTE\n\n"
+ "NAME: \"Mux Buffer 8 \", DESCR: \"Mux Buffers for Redundancy Logic\"\n"
+ "PID: WS-X4590-EX= , VID: , SN: NWG16179C3V\n\n"
+ "NAME: \"Mux Buffer 9 \", DESCR: \"Mux Buffers for Redundancy Logic\"\n"
+ "PID: WS-X4590-EX= , VID: , SN: NWG16179CLW\n\n"
+ "NAME: \"Mux Buffer 10 \", DESCR: \"Mux Buffers for Redundancy Logic\"\n"
+ "PID: WS-X4590-EX= , VID: , SN: NWG16179CVU\n\n"
+ "NAME: \"Linecard(slot 1)\", DESCR: \"10/100/1000BaseT (RJ45)+V E Series with 48 10/100/1000 baseT Premium PoE ports (Cisco/IEEE)\"\n"
+ "PID: WS-X4748-RJ45V+E , VID: V03 , SN: CAT1624L2J7\n";
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