排除邮政编码时出错

时间:2018-05-11 17:31:37

标签: ruby regex postal-code

我在Ruby中使用正则表达式时遇到错误 - 邮政编码BT9 6NZ设法写成BT96NZ - 有没有办法编辑它以使其变得万无一失是什么?

我所拥有的代码如下:

^BT\d{1,2}\s|^HS\d{1,2}\s|KA27|AB31|AB32|AB33|AB34|AB35|AB36|AB37|AB38|PH4|PH5|PH6|PH7|PH8|PH9|KA28|^KW\d{1,2}\s|^IM\d{1,2}\s|^IV\d{1,2}\s|^AB4\d{1}\s|^AB5\d{1}\s|^PA2\d{1}\s|^PA3\d{1}\s|^PA4\d{1}\s|^PA5\d{1}\s|^PA6\d{1}\s|^PA7\d{1}\s|^PH1\d{1}\s|^PH2\d{1}\s|^PH3\d{1}\s|^PH4\d{1}\s|^PH5\d{1}\s

1 个答案:

答案 0 :(得分:0)

您在问题中显示的正则表达式与“BT96NZ”不匹配

/^BT\d{1,2}\s|^HS\d{1,2}\s|KA27|AB31|AB32|AB33|AB34|AB35|AB36|AB37|AB38|PH4|PH5|PH6|PH7|PH8|PH9|KA28|^KW\d{1,2}\s|^IM\d{1,2}\s|^IV\d{1,2}\s|^AB4\d{1}\s|^AB5\d{1}\s|^PA2\d{1}\s|^PA3\d{1}\s|^PA4\d{1}\s|^PA5\d{1}\s|^PA6\d{1}\s|^PA7\d{1}\s|^PH1\d{1}\s|^PH2\d{1}\s|^PH3\d{1}\s|^PH4\d{1}\s|^PH5\d{1}\s/.match? 'BT96NZ'
=> false

/^BT\d{1,2}\s|^HS\d{1,2}\s|KA27|AB31|AB32|AB33|AB34|AB35|AB36|AB37|AB38|PH4|PH5|PH6|PH7|PH8|PH9|KA28|^KW\d{1,2}\s|^IM\d{1,2}\s|^IV\d{1,2}\s|^AB4\d{1}\s|^AB5\d{1}\s|^PA2\d{1}\s|^PA3\d{1}\s|^PA4\d{1}\s|^PA5\d{1}\s|^PA6\d{1}\s|^PA7\d{1}\s|^PH1\d{1}\s|^PH2\d{1}\s|^PH3\d{1}\s|^PH4\d{1}\s|^PH5\d{1}\s/.match? 'BT9 6NZ'
=> true

所以我认为您的问题不是正则表达式,但更有可能是您使用它来过滤参数的代码。