我正在尝试验证Ruby中的英国邮政编码。我在stackoverflow上偶然发现了这个正则表达式:
(GIR 0AA)|((([A-Z-[QVX]][0-9][0-9]?)|(([A-Z-[QVX]][A-Z-[IJZ]][0-9][0-9]?)|(([A-Z-[QVX]][0-9][A-HJKSTUW])|([A-Z-[QVX]][A-Z-[IJZ]][0-9][ABEHMNPRVWXY])))) [0-9][A-Z-[CIKMOV]]{2})
它在Ruby 1.9.2和2.0.0中工作得很好(请参阅http://rubular.com/r/GKgLdIFvNJ),但是我正在使用1.8.7。我能做些什么?
任何建议,将不胜感激。谢谢!
您在哪里找到这个表达?我认为它不是为Ruby编写的。
Ruby不支持字符类减法。因此1.9.2接受[AZ- [QVX]]但未按预期工作。这些字符未从char类中排除(请参阅rubular,QVX仍然匹配)
1.8.7完全不接受该表达式。
您必须像这样重写所有这些字符范围:
[A-Z-[QVX]]
变成 [A-PR-UWYZ]
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句