【发布时间】:2015-07-11 08:36:04
【问题描述】:
我正在尝试为 MySQL 编写一个 RegExp,它只会返回以下 3 种电话格式:
+1 000-000-0000 x0000
+1 000-000-0000
000-000-0000 x0000
000-000-0000
所以基本上:
+[任意位数][空格][任意三位数]-[任意三位数]-[任意四位数][空格][x][任意位数]
国家代码和扩展名是可选的。我是新手,但我认为这应该至少返回一个数字,包括国家代码和扩展选项,但是当我执行它时我得到 0 个结果。
\x2B[0-9]*\x20[0-9]{3}\-[0-9]{3}\-[0-9]{4}\x20x[0-9]+|
\x2B[0-9]*\x20[0-9]{3}\-[0-9]{3}\-[0-9]{4}|
[0-9]{3}\-[0-9]{3}\-[0-9]{4}
有人可以告诉我为什么我的数据库中有 +1 555-555-5555 x5555 这样的记录,但我得到 0 个结果。另外,使国家代码和扩展名是可选的语法是什么
请注意,我使用 [0-9] 是因为我正在查询一个文本字段,并且即使我的条件很简单,例如 \d*,\d 似乎也没有返回任何内容
【问题讨论】:
-
你为什么使用
\x2B而不是仅仅转义+:\+?有什么特别的原因吗?以及为什么要转义空格(即\x20而不是``) -
基本上是因为我不知道你可以那样做 :)