import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "^(?P<port_name>[\\w\\/]+)[^\\S\\r\\n]+(?P<description>(?!Full\\b|N\\/A\\b)\\S+(?:[^\\S\\r\\n]+\\S+)*?[^\\S\\r\\n]+)?(?P<duplex>Full|N\\/A)[^\\S\\r\\n]+(?P<speed>\\d+|N\\/A)\\b";
final String string = "Port Description Duplex Speed Neg Link Flow M VLAN\n"
+ " State Ctrl\n"
+ "--------- --------------- ------ ------- ---- ------ ----- -- -------------------\n"
+ "Te1/0/1 CVH10 Mgt+Clstr Full 10000 Off Up On T (1),161-163\n"
+ "Te1/0/2 CVH10 VM 1 Full 10000 Off Up On T (1),11,101,110,\n"
+ " 120,130,140,150,\n"
+ " 160,170,180,190,\n"
+ " 200,210,230,240,\n"
+ " 250,666,999\n"
+ "Fo2/1/1 N/A N/A N/A Detach N/A\n"
+ "Te2/0/8 Full 10000 Off Down Off A 1";
final Pattern pattern = Pattern.compile(regex, Pattern.MULTILINE);
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