[a-z\%\/\-\(\)\s]?\d{3}[a-z\%\/\-\(\)\s]?\d{3}[a-z\%\/\-\(\)\s]?\d{4}[a-z\%\/\-\(\)\s]?
我的上面的正则表达式是我想出来的。但我需要能够检测到更多数字模式的东西,然后,一旦数字匹配,删除行中的所有其他文本,字母,字符,但删除数字。下面是我的正则表达式。
我真的需要帮助,这一直在寻找。
https://www.regex101.com/r/hT5eD9/1
固定
答案 0 :(得分:3)
你可以采用这种方法:
匹配1个或更多个非数字,后面跟着数字,以检测数字之间的非数字并删除它们。
使用此正则表达式:
(?<=\d)[^\d\n]+(?=\d)
<强>代码:强>
$result = preg_replace("~(?<=\\d)[^\\d\\n]+(?=\\d)~", '', $input);
答案 1 :(得分:0)
这个怎么样?
<?
if(is_numeric($str)){
//str is a number
}
答案 2 :(得分:0)
试试这个:正则表达式([^\d\s]+|\s\d{1,2}[\s\,])*(\d{3}[^\d\n]*\d{3}[^\d\n]*\d{4})*([^\d\s]+|\s\d{1,2}[\s\,])*
您搜索([^\d\s]+|\s\d{1,2}[\s\,])*(\d{3}[^\d\n]*\d{3}[^\d\n]*\d{4})*([^\d\s]+|\s\d{1,2}[\s\,])*
并替换为$2
。它适用于你的病情。
<强>更新强>