import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "^(?:([^BFGJKPQVWXYZ\\W]{3})|([A-Z]{3}))\\b";
final String string = "THE 53097401461\n"
+ "OF 30966074232\n"
+ "AND 22632024504\n"
+ "TO 19347398077\n"
+ "IN 16891065263\n"
+ "A 15310087895\n"
+ "IS 8384246685\n"
+ "THAT 8000768228\n"
+ "FOR 6545282031\n"
+ "IT 5740085369\n"
+ "AS 5700645258\n"
+ "WAS 5502713968\n"
+ "WITH 5182797249\n"
+ "BE 4818864785\n"
+ "BY 4703106084\n"
+ "ON 4594521081\n"
+ "NOT 4522732626\n"
+ "HE 4110457083\n"
+ "I 3884828634\n"
+ "THIS 3826060334\n"
+ "ARE 3700433333\n"
+ "OR 3667713965\n"
+ "HIS 3611377789\n"
+ "FROM 3469207674\n"
+ "AT 3413452256\n"
+ "WHICH 3140226612\n"
+ "BUT 2792350185\n"
+ "HAVE 2777439117\n"
+ "AN 2726250863\n"
+ "HAD 2616021603\n"
+ "THEY 2462131290\n"
+ "YOU 2337737641\n"
+ "WERE 2270487439\n"
+ "THEIR 2152980325\n"
+ "ONE 2148983086\n"
+ "ALL 2062779102\n"
+ "WE 2057296224";
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