Проверка почтовых кодов Великобритании с использованием регулярных выражений - PullRequest
3 голосов
/ 12 августа 2010

Я хочу проверить поле с почтовым индексом Великобритании. Какое регулярное выражение можно использовать для проверки этого поля? (([A-Z]{1,2}[0-9][0-9A-Z]{0,1})\ ([0-9][A-Z]{2}))|(GIR\ 0AA)$ кажется действительным, поскольку имеет исключение GIR 0AA .

Итак, пожалуйста, помогите мне написать выражение без каких-либо исключений

Ответы [ 3 ]

3 голосов
/ 12 августа 2010

Если вы имеете в виду почтовый индекс, В Википедии есть раздел о проверке .Одно из регулярных выражений, которое он рекомендует:

((A[BL]|B[ABDHLNRST]?|C[ABFHMORTVW]|D[ADEGHLNTY]|E[HNX]?|F[KY]|G[LUY]?|H[ADGPRSUX]|I[GMPV]|JE|K[ATWY]|L[ADELNSU]?|M[EKL]?|N[EGNPRW]?|O[LX]|P[AEHLOR]|R[GHM]|S[AEGKLMNOPRSTY]?|T[ADFNQRSW]|UB|W[ADFNRSV]|YO|ZE)[1-9]?[0-9]|([E|N|NW|SE|SW|W]1|EC[1-4]|WC[12])[A-HJKMNPR-Y]|[SW|W]([1-9][0-9]|[2-9])|EC[1-9][0-9]) [0-9][ABD-HJLNP-UW-Z]{2}

Преимущество этого метода в том, что он ловит некоторые недопустимые области и районы.

1 голос
/ 12 августа 2010

Примечание: 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)$
0 голосов
/ 12 августа 2010
^([A-PR-UWYZ0-9][A-HK-Y0-9][AEHMNPRTVXY0-9]?[ABEHMNPRVWXY0-9]? {1,2}[0-9][ABD-HJLN-UW-Z]{2}|GIR 0AA)$
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...