【发布时间】:2017-04-13 16:56:21
【问题描述】:
我正在尝试寻找一个正则表达式来代替这个想法:
if($input === numbers_only($phone_number)) {
// do something
}
假设
$input 总是是数字
numbers_only() 去除所有非数字字符
上下文
一天结束时,我需要编写一个 MySQL 查询来针对格式化为 TEXT 的列执行此操作,这就是为什么我不能简单地使用上述函数的原因。所以它看起来像:
SELECT
number
FROM
phones
WHERE
number REGEXP '...'
这是正则表达式可以处理的事情吗?
更新
我认为,如果 MySQL 中的 CONVERT() 方法可以处理将 TEXT(不是 varchar)转换为 INT 以进行比较,那么可以更好地表达这个问题(或另一种解决方法)。
【问题讨论】:
-
stackoverflow.com/questions/6604455/… ,如有误解,请见谅。
-
感谢@Progrock - 不幸的是,它链接到一个 preg_replace(),它是 PHP,最后,我需要它是 MySQL
-
@Bobot - 谢谢,看起来这需要通过一个函数。我认为作为一个单一的正则表达式没有办法做到这一点?
-
虽然 sql 中没有 preg_replace_callback ...顺便说一句,您可以通过构建像
<firstDigit>%<secondDigit>%...这样的正则表达式来做一些事情