Примечание: GIR 0AA
указан как исключение в вашей обычной
выражение, потому что это действительная Великобритания
почтовый индекс за что суть
исторические причины (ищите это в
статья в Википедии, это дано
особое упоминание).
Нет простого тривиального регулярного выражения, которое вы можете написать, чтобы проверить почтовый индекс Великобритании, поскольку нет уверенности в том, что, например, GU78 2AB действителен (внешняя область GU78 может содержать только 2A A , но не 2A B ), тогда как GU77 2AB вполне может считаться действительным.
Вы можете использовать регулярное выражение для проверки формы и структуры фрагмента текста, чтобы определить, соответствует ли он требованиям, которые следует считать почтовым индексом. Я полагаю, что, в широком смысле, следующее регулярное выражение удовлетворит это:
(([A-Z]{1,2}[0-9]{1,2})\ ([0-9][A-Z]{2}))|(GIR\ 0AA)$