Регулярное выражение для проверки почтового индекса Великобритании

В этом уроке по регулярным выражениям Java мы научимся использовать регулярные выражения для проверки почтовых индексов, характерных для Великобритании. Вы можете изменить регулярное выражение, чтобы оно подходило для любого другого формата.

1. Каковы действительные почтовые индексы Великобритании?

Почтовые индексы в Великобритании(или почтовые индексы) состоят из пяти-семи буквенно-цифровых символов, разделенных пробелом. Эти две части — внешний код и внутренний код.

Внешний код включает почтовый индекс области и почтовый индекс района. Внутренний код включает почтовый индекс сектора и почтовый индекс единицы.

Примеры почтовых индексов включают «SW1W 0NY», «PO16 7GZ», «GU16 7HF» или «L1 8JQ».

Правила, определяющие, какие символы могут появляться в определенных позициях, немного сложны и полны исключений. Поэтому приведенное здесь регулярное выражение придерживается только основных правил.

Регулярное выражение: ^[AZ]{1,2}[0-9R][0-9A-Z]? [0-9][ABD-HJLNP-UW-Z]{2}$

Для проверки правил проверки почтовых индексов Великобритании посетите эту страницу Википедии.

2. Пример проверки почтового индекса Великобритании

List<String> zips = new ArrayList<String>();//Valid ZIP codeszips.add("SW1W 0NY");zips.add("PO16 7GZ");zips.add("GU16 7HF");zips.add("L1 8JQ");//Invalid ZIP codeszips.add("Z1A 0B1");zips.add("A1A 0B11");String regex = "^[A-Z]{1,2}[0-9R][0-9A-Z]? [0-9][ABD-HJLNP-UW-Z]{2}$";Pattern pattern = Pattern.compile(regex);for(String zip : zips){Matcher matcher = pattern.matcher(zip);System.out.println(matcher.matches());}

Вывод программы:

truetruetruetruefalsefalse

Не стесняйтесь задавать вопросы, связанные с приведенным выше примером проверки почтового индекса Великобритании.

Прокрутить вверх