【问题标题】:MySQL Regexp for uk postal area英国邮政区的 MySQL 正则表达式
【发布时间】:2014-10-29 16:00:46
【问题描述】:

我需要邮政区(首字母)与我的字符串匹配的所有邮政编码。

邮政编码示例:

SW12 3AB
S12 3AB

如果我的邮政区字符串是 's',它应该只返回 S12 3AB

如果我的邮政区字符串是“sw”,它应该只返回SW12 3AB

这是我的查询:

SELECT ID, Postcode
FROM order 
WHERE Postcode REGEXP '^s[0-9].*'

花了几个小时阅读手册后,我发现这种语法没有问题。 - 邮政编码必须以我的字符串开头 - 字符串后面必须跟一个数字 - 之后任何事情都可能发生

很遗憾没有返回任何记录。我做错了什么?

【问题讨论】:

  • 可能是'^s[0-9].*' 中的s 是小写,而在邮政编码中是大写S?大多数正则表达式默认情况下区分大小写。试试'^[sS][0-9]'(你可以省略.*,因为你不匹配字符串的结尾)。
  • @funkwurm,省略 .* 是一个很好的提示,谢谢。不幸的是,区分大小写不是问题。尝试了很多方法...

标签: mysql regex


【解决方案1】:

我发现了问题,我觉得很傻。

没有英国邮政编码区“S”,因此没有找到任何匹配项。

它与这些“N”和“NW”以及所有其他有效区域完美配合。

如果有办法,我很想删除这篇文章。道歉。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多