【问题标题】:Error when excluding postcode排除邮政编码时出错
【发布时间】:2018-05-11 17:31:36
【问题描述】:

我在 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

【问题讨论】:

    标签: ruby regex postal-code


    【解决方案1】:

    您在问题中显示的正则表达式与“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
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-04-11
      • 2013-12-10
      • 1970-01-01
      • 2020-04-21
      • 1970-01-01
      • 2021-12-24
      • 2011-07-07
      • 1970-01-01
      相关资源
      最近更新 更多