import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "^(?!0{3})(?!6{3})[0-8]\\d{2}-(?!0{2})\\d{2}-(?!0{4})\\d{4}$";
final String string = "762-37-6334\n"
+ "429-08-8462\n"
+ "519-75-9429\n"
+ "117-08-6495\n"
+ "544-12-9823\n"
+ "841-01-5655\n"
+ "494-82-9724\n"
+ "568-11-2312\n"
+ "420-42-8078\n"
+ "396-09-7229\n"
+ "869-57-0924\n"
+ "609-44-0934\n"
+ "578-20-1520\n"
+ "835-87-3325\n"
+ "636-03-4578\n"
+ "482-19-1418\n"
+ "364-60-1676\n"
+ "780-23-8549\n"
+ "265-33-9416\n"
+ "221-88-6838\n"
+ "550-13-2720\n"
+ "336-93-2610\n"
+ "193-47-3307\n"
+ "480-82-8373\n"
+ "750-66-0817\n"
+ "122-68-3192\n"
+ "673-84-7164\n"
+ "191-03-8274\n"
+ "412-41-9768\n"
+ "888-21-9775\n"
+ "805-53-9154\n"
+ "150-26-0934\n"
+ "880-42-1378\n"
+ "853-41-1922\n"
+ "467-22-3453\n"
+ "220-91-4157\n"
+ "657-24-3167\n"
+ "229-17-5111\n"
+ "411-38-6337\n"
+ "453-61-4836\n"
+ "123-27-0915\n"
+ "105-56-0050\n"
+ "646-82-7847\n"
+ "105-17-8892\n"
+ "301-70-3833\n";
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