我有文字3571157, 357-11-57, 357 11 57

我可以使用正则表达式\d{3}[-\s]?\d{2}[-\s]?\d{2}捕获这些数字

但是我想要的是在所有情况下我的比赛都看起来像3571157。可能吗?

附言我的意思是在正则表达式级别上,之后没有其他代码,以使代码/[a-z-]+/.exec('ha-ha')[0]中的内容更加清晰:我要输出haha(与排除的-字符匹配)

最佳答案

是的,这是可行的。您可以使用空格和-的字符串替换来实现,例如:

$input = '3571157, 357-11-57,  81749 91741 9080,  81749 91741 9080,  81749 91741 9080  ,357 11 57, 81749 91741 9080';
$split_inputs = preg_split('/,/s', $input);
$output = '';
foreach ($split_inputs as $key => $value) {
    $match = preg_match('/^[0-9 \-]{7,9}$/s', trim($value));
    if (!$match) {continue;}
    $output .= preg_replace('/-|\s/s', '', $value);
    if (sizeof($split_inputs) - 1 - $match != (int) $key) {
        $output .= ", ";
    }
}

var_dump($output);


输出量

 string(25) "3571157, 3571157, 3571157"


您可以使用this RegEx并首先匹配您的输入。

^[0-9\s\-]{7,9}$


javascript - 与排除的字符匹配-LMLPHP

09-11 14:16