正则表达式:忽略字符串比较中的字符

时间:2016-11-29 15:57:30

标签: php mysql regex

我正在尝试找一个正则表达式来取代这个想法:

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进行比较的方法。 p>

1 个答案:

答案 0 :(得分:1)

最好在存储在表中之前清理数据。通过这种方式,您可以充分利用客户端语言,例如protected override async void OnAppearing() { base.OnAppearing(); if (TakePicture != null) { await Task.Delay(5000); TakePicture(); } } (如果是PHP)。也许您应该努力现在来修复所有数据?

但是,假设您在列中遇到了垃圾,让我们看看我们能做些什么。

好像你在谈论电话号码?只有少数字符(可能是“ - ()”)可能存在?所以......

preg_replace('/[^0-9]+/', '', $num)

真的很乱。而且效率很低。