У меня есть регулярное выражение, которое работает для проверки почтовых индексов Великобритании, но теперь я хотел бы извлечь составные части кода, и я запутался. Для тех, кто не знает примеров почтовых индексов Великобритании: «WC1 1AA», «WC11 1AA» и «M1 1AA».
Регулярное выражение ниже (извинения за форматирование) обрабатывает отсутствие пробела (это бит \s{0,}
) между левой и правой частями и все еще проверяет (что здорово).
(?:(?:A[BL]|B[ABDHLNRST]?|C[ABFHMORTVW]|D[ADEGHLNTY]|E[CHNX]?|F[KY]|G[LUY]?|H[ADGPRSUX]|I[GMPV]|JE|K[ATWY]|L[ADELNSU]?|M[EKL]?|N[EGNPRW]?|O[LX]|P[AEHLOR]|R[GHM]|S[AEGKLMNOPRSTWY]?|T[ADFNQRSW]|UB|W[ACDFNRSV]?|YO|ZE)\d(?:\d|[A-Z])?\s{0,}\d[A-Z]{2})
Я бы хотел иметь возможность извлечь левую и правую стороны сейчас, и я знаю, что для этого используются скобки, но там уже есть скобки, и спецификацию регулярного выражения нелегко прочитать. Поэтому я думаю, что эти скобки нуждаются в замене. Может ли кто-нибудь помочь мне переделать мои скобки?
Я вижу, что другие люди могут найти это регулярное выражение, поэтому, пожалуйста, не стесняйтесь использовать его для проверки почтовых адресов в Великобритании.