2011-01-13 123 views
0

我要验证一个逗号分隔的邮政编码如列表“95123,95%,95222,95%-8__,95333”为多个邮政编码的正则表达式与通配符

我有正则表达式^ \ d {5}( - ?\ d {4})?(,\ d {5}( - ?\ d {4})?)* $可用于获取没有下划线和百分比字符的有效拉链。我如何修改正则表达式来处理示例字符串?

+0

这一个接近。它唯一不能做的就是允许%作为zip。 ^(((([\ d \ X5F] {5})|([\ d \ X5F] {1,4} \ X25))( - ([\ d \ X5F] {4})|([\ d ?\ X5F] {1,3} \ X25)))\ S *,\ S *)*((((\ d \ X5F] {5})|([\ d \ X5F] {1,4} \ x25))( - ([\ d \ x5F] {4})|([\ d \ x5F] {1,3} \ x25))?)\ s *)$ – Brent 2011-01-14 16:39:41

回答

0

为什么不用逗号分割字符串,然后在每个邮政编码上使用正则表达式?

+0

很好的问题。这是因为我的验证器使用正则表达式并绕过它将比获得一个正确的正则表达式更多的工作(我希望) – Brent 2011-01-13 22:49:27

0

只要你不是太担心验证:

(?:^|,\s*)([0-9\x25_]{1,5}(?:-[0-9\x25_]{1,4})?) 

这应该做你所需要的,只是进行匹配,所有获得的每个条目。

注:我没有做任何检查,以确保他们有足够的编号(如无效123_%2 _-__ 23例如,如果_仅仅表示 “1个字”)

+0

谢谢,越来越接近。如果用户输入“12345,12%”,正则表达式应该匹配。如果他们输入“12345-1”或“95”,它不应该。在表达式中,正则表达式匹配无效的zip格式。 – Brent 2011-01-13 23:10:00

相关问题