[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
您可以采用以下方法:
匹配 1 个或多个后跟两侧数字的非数字,以检测数字之间的非数字并将其删除。
使用此正则表达式:
(?<='d)[^'d'n]+(?='d)
正则表达式演示
法典:
$result = preg_replace("~(?<=''d)[^''d''n]+(?=''d)~", '', $input);
这个怎么样?
<?
if(is_numeric($str)){
//str is a number
}
试试这个: 正则表达式模式 ([^'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
. 它将适用于您的条件。
更新:
现场演示