2015-07-22 2 views
0

Я пытаюсь создать регулярное выражение, соответствующее следующие шаблоны (с и без пробелов):Java регулярного выражения для Uk почтовых индексов с пробелами

M1 1AA, M60 1NW, CR2 6XH, DN55 1PT, W1A 1HQ и EC1A 1BB

Я очень новичок в этом и затрудняюсь создать функциональное регулярное выражение для всех приведенных выше примеров.

Поиск здесь и там Я нашел регулярное выражение, которое может работать для некоторых шаблонов, но я не знаю, как добавить условие «с пространством или без него» для каждого типа почтового индекса.

Здесь регулярное выражение я нашел на другой пост "^ (A-PR-UWYZ [0-9] [ABD-HJLNP-UW-Z] {2})"

Как добавить пространство/нет пространства? Для соответствия M11AA или M1 1AA.

+1

Некоторые из нас не знакомы с британскими почтовыми кодами. Можете ли вы привести несколько примеров, которые НЕ должны совпадать? В противном случае, похоже, любая комбинация заглавных букв и цифр, начиная с прописной буквы, должна совпадать. –

+0

В дубликате, в принятом ответе есть ссылки на синтаксис почтовых сообщений uk –

ответ

0

Вам нужно это регулярное выражение:

^([A-PR-UWYZ](([0-9](([0-9]|[A-HJKSTUW])?)?)|([A-HK-Y][0-9]([0-9]|[ABEHMNPRVWXY])?)) ?[0-9][ABD-HJLNP-UW-Z]{2})$ 
                        ^

Это пространство должно быть установлено в качестве факультативных с ? квантора, что означает 0 или 1 повторение.

См demo

+0

Благодарим за помощь. Это работает хорошо! –

Смежные вопросы