【发布时间】:2018-01-23 18:48:52
【问题描述】:
我正在尝试从错误的电话号码条目中清除数据集。在 MySQL 中为过滤器制作正则表达式时遇到问题。
结构如下:
第一个数字在 2-9
第二位和第三位数字可以是任何数字但它们可能不是同一个数字
第四位在 2-9
第五和第六位可以是任何数字除了'11'
我已经找到了一些相当复杂的 reg 表达式,但它们并不太奏效;但我确信有一种简单的方法。
“有效”数字可能如下所示:
2028658680
7137038891
我的过滤器通常会漏掉以下情况:
6778914351
7777777777
6178116678
请注意,这些数字完全是虚构的。
【问题讨论】:
-
能否提供与您的案例相匹配的样品
-
添加了一些虚构的例子
-
您无法使用正则表达式满足这些条件。具体来说,就是某些角色的需求依赖于其他角色的部分。
-
[2-9](\d)(?!\1)\d[2-9](?!11)\d{2} -
您被困在这里,因为 MySQL 不支持 backreferences,因此您的第二个条件无法使用 MySQL 正则表达式进行编码。好吧,它也不支持环视,这使得实现最后一个条件有点困难。无法使用 MySQL 正则表达式解决问题。