import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "\\b(?:(?:[A-Z][A-HJ-Y]?[0-9][0-9A-Z]?|ASCN|STHL|TDCU|BBND|[BFS]IQ{2}|GX11|PCRN|TKCA) ?[0-9][A-Z]{2}|GIR ?0A{2}|SAN ?TA1|AI-?[0-9]{4}|BFPO[ -]?[0-9]{2,3}|MSR[ -]?1(?:1[12]|[23][135])0|VG[ -]?11[1-6]0|[A-Z]{2} ? [0-9]{2}|KY[1-3][ -]?[0-2][0-9]{3})\\b";
final String string = "M1 1AA\n"
+ "M60 1NW\n"
+ "CR2 6XH\n"
+ "DN55 1PT\n"
+ "GY101ZZ\n"
+ "W1A 1HQ\n"
+ "EC1A 1BB\n"
+ "CW3 9SS\n"
+ "SE5 0EG\n"
+ "SE50EG\n"
+ "se5 0eg\n"
+ "WC2H 7LT\n"
+ "BS98 1TL\n"
+ "BX1 1LT\n"
+ "BX2 1LB\n"
+ "BX3 2BB\n"
+ "BX4 7SB\n"
+ "BX5 5AT\n"
+ "CF10 1BH\n"
+ "CF99 1NA\n"
+ "CV4 8UW\n"
+ "CV35 0DB\n"
+ "DA1 1RT\n"
+ "DE99 3GG\n"
+ "DE55 4SW\n"
+ "DH98 1BT\n"
+ "DH99 1NS\n"
+ "E14 5HQ\n"
+ "E14 5JP\n"
+ "E16 1XL\n"
+ "E20 2AQ\n"
+ "E20 2BB\n"
+ "E20 2ST\n"
+ "E20 3BS\n"
+ "E20 3EL\n"
+ "E20 3ET\n"
+ "E20 3HB\n"
+ "E20 3HY\n"
+ "E98 1SN\n"
+ "E98 1ST\n"
+ "E98 1TT\n"
+ "EC2N 2DB\n"
+ "EC4Y 0HQ\n"
+ "EH12 1HQ\n"
+ "EH99 1SP\n"
+ "G58 1SB\n"
+ "GIR 0AA\n"
+ "IV21 2LR\n"
+ "L30 4GB\n"
+ "LS98 1FD\n"
+ "M50 2BH\n"
+ "M50 2QH\n"
+ "N1 9GU\n"
+ "N81 1ER\n"
+ "NE1 4ST\n"
+ "NG80 1EH\n"
+ "NG80 1LH\n"
+ "NG80 1RH\n"
+ "NG80 1TH\n"
+ "MSR1110\n"
+ "MSR1120\n"
+ "MSR1210\n"
+ "MSR1230\n"
+ "MSR1250\n"
+ "MSR1310\n"
+ "MSR1330\n"
+ "MSR1350\n"
+ "PH1 5RB\n"
+ "PH1 2SJ\n"
+ "S2 4SU\n"
+ "S6 1SW\n"
+ "SB 01\n"
+ "VG1110\n"
+ "S14 7UP\n"
+ "SE1 0NE\n"
+ "SE1 8UJ\n"
+ "SM6 0HB\n"
+ "SN38 1NW\n"
+ "SR5 1SU\n"
+ "SW1A 0AA\n"
+ "WC1N2PL\n"
+ "SW1A 0PW\n"
+ "SW1A 1AA\n"
+ "SW1A 2AA\n"
+ "SW1A 2AB\n"
+ "SW1H 0TL\n"
+ "SW1P 3EU\n"
+ "SW1W 0DT\n"
+ "TW8 9GS\n"
+ "W1A 1AA\n"
+ "W1D 4FA\n"
+ "W1N 4DJ\n"
+ "W1T 1FB\n"
+ "CO4 3SQ\n"
+ "SAN TA1\n";
final Pattern pattern = Pattern.compile(regex, Pattern.MULTILINE | Pattern.CASE_INSENSITIVE);
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