正则表达式查找忽略所有非数字字符的数字

时间:2018-07-18 11:44:36

标签: php regex

已保存的字符串:(123) 456-78-90
搜索词:34567

我需要找到什么匹配表达式。尝试过:

/3.*4.*5.*6.*7/


但是,如果搜索词为34569,它仍然会找到错误的匹配项。

我需要用正则表达式按给定顺序查找数字,但忽略这些数字之间的所有内容,例如方括号,空格或破折号。

谢谢

2 个答案:

答案 0 :(得分:2)

为什么不只删除非数字字符然后在其上进行搜索:

$input = "(123) 456-78-90";
$input = preg_replace("/[^0-9]+/", "", $input);
if (strpos($input, '34567') !== false) {
    echo 'match';
}

Demo

答案 1 :(得分:1)

.更改为\D(非数字)即可使用,例如/3\D*4\D*5\D*6\D*7/