2014-12-05 2 views
0

Я довольно новичок в регулярном выражении и пытаюсь написать регулярное выражение, соответствующее кодам почтовых индексов в каждом состоянии, но с трудным временем. В качестве примера, Аляска ZIP коды между 99501 и 99950, но это не работает:Проверка Regex для почтовых индексов для каждого состояния

99(5|6|7|8|9)(0|1|2|3|4|5|6|7|8|9)(0|1|2|3|4|5|6|7|8|9) 

, потому что это также соответствует 99951. Кто-нибудь делал это уже, или ум помогает мне, по крайней мере, шаблон для этого ? Вот ZIP код диапазоны для каждого состояния: http://www.structnet.com/instructions/zip_min_max_by_state.html

+0

дубликат: HTTP: //stackoverflow.com/questions/2577236/regex-for-zip-code –

+1

Я недостаточно хорош с regexp, чтобы дать вам ответ, но похоже, что вы можете использовать lookahead для решения вашей проблемы. [ссылка здесь] (http://www.regular-expressions.info/lookaround.html) Это будет огромная боль, чтобы написать столько, сколько вам потребуется. Возможно, вам повезло найти api для проверки zipcodes для вас. – MIke

+0

@MikeN: API .. или простое численное сравнение. – usr2564301

ответ

1

регулярное выражение является плохим выбором для этой проблемы, но я думаю, что это можно было бы получить работу:

99(5(0[1-9]|[1-9]\d)|[6-8]\d\d|9([0-4]\d|50)) 

http://rubular.com/r/Fs9bTpgGTT

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