ruby - 排除邮政编码时出错
问题描述
我在 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
解决方案
您在问题中显示的正则表达式与“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
所以我认为您的问题不是正则表达式,而是您使用它来过滤参数的代码。
推荐阅读
- c# - 使用 Visual Studio 安装程序安装后的 .NET WPF 运行时错误
- flutter - 从 Flutter 前端注册到 aqueduct 后端
- angular - 角度 9 刷新正在返回仪表板页面
- android-studio - 为什么 Android Studio 在编写代码时不再显示提示?
- hadoop - 从 Hive 托管表分区中删除行
- swiftui - 如何仅在 SwiftUI 中使用按钮移动滚动视图
- jquery - 使用jquery在动态html的输入标签类内添加空格
- php - 重定向到 PHP 中的上一页但删除所有 URL 变量
- powershell - 如何使用常见的散列算法在 PowerShell 中散列字符串字节数组和 io 流
- c - 在 for 循环中更新结构成员