import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "^(?!^[0-9])(?![0-9][AZ])(?![AZ0-9*]*\\*\\*)(?![AZ0-9*]*\\*[AZ])((?=[AZ0-9]{6})|(?=[AZ0-9*]*\\*))(?![AZ0-9*]*[0-9][A-Z])[AZ0-9*]{1,6}$";
final String string = "^(?![0-9])(?![0-9][AZ])(?![AZ0-9*]*\\*\\*)(?![AZ0-9*]*\\*[AZ0])(?=[AZ0-9*]*\\*)(?![AZ0-9*]*[0-9][A-Z])[AZ0-9*]{1,6}$\n"
+ "Broken down: \n"
+ "^(?![0-9])\n"
+ "(?![0-9][AZ])\n"
+ "(?![AZ0-9*]*\\*\\*)\n"
+ "(?![AZ0-9*]*\\*[AZ0])\n"
+ "(?=[AZ0-9*]*\\*)\n"
+ "(?![AZ0-9*]*[0-9][A-Z])\n"
+ "[AZ0-9*]{1,6}$\n\n"
+ "Check these for patterns\n"
+ "Following would be valid\n"
+ "*\n"
+ "*1\n"
+ "*1*\n"
+ "*12345\n"
+ "A*\n"
+ "A*2\n"
+ "A*2*\n"
+ "A1*3\n"
+ "A1*3*\n"
+ "A12*4\n"
+ "A*2\n"
+ "A*23\n"
+ "A*234\n"
+ "A*2345\n"
+ "A12*45\n"
+ "A1234*\n"
+ "A*2345\n"
+ "A12*4*\n"
+ "A*23*5\n"
+ "A123*5\n"
+ "*12345\n"
+ "*1234*\n"
+ "*1*3*5\n"
+ "*12*4*\n"
+ "*1*3*5\n"
+ "*123*5\n"
+ "A12345\n\n"
+ "Examples of invalid entries: <Any ** entry> - <Any * A-Z character> - <Any value longer than 6>\n"
+ "A1\n"
+ "A12\n"
+ "A123\n"
+ "A1234\n"
+ "*A1234\n"
+ "B*\n"
+ "B1*\n"
+ "BA*45\n"
+ "B*2345\n"
+ "**\n"
+ "*1A\n"
+ "*1A1*\n"
+ "*A2345\n"
+ "*123456\n"
+ "1234*\n"
+ "A\n"
+ "**12\n"
+ "*1**\n"
+ "*1*3**\n"
+ "*12**\n"
+ "*1*3*56\n"
+ "*123**\n"
+ "*12*45*\n"
+ "A*23456";
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