每个州的邮政编码的正则表达式验证

时间:2014-12-05 20:16:09

标签: regex

我对正则表达式很新,并试图编写一个与每个州的邮政编码相匹配的正则表达式,但是很难。例如,阿拉斯加的邮政编码介于99501和99950之间,但这不起作用:

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.任何人都已经这样做了,或者介意至少帮助我解决这个模式?以下是每个州的邮政编码范围: http://www.structnet.com/instructions/zip_min_max_by_state.html

1 个答案:

答案 0 :(得分:1)

regexp对于这个问题是一个糟糕的选择,但我认为这个可能会完成工作:

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

http://rubular.com/r/Fs9bTpgGTT