Php 删除文本中除点、文本、数字和空格以外的所有内容

Php 删除文本中除点、文本、数字和空格以外的所有内容,php,Php,我有下面的代码 function title($str, $sep=' ') { $res = strtolower($str); $res = preg_replace('/[^[:alnum:]]/', ' ', $res); $res = preg_replace('/[[:space:]]+/', $sep, $res); return trim($res, $sep); }

我有下面的代码

 function title($str, $sep=' ')
    {
            $res = strtolower($str);
            $res = preg_replace('/[^[:alnum:]]/', ' ', $res);
            $res = preg_replace('/[[:space:]]+/', $sep, $res);
            return trim($res, $sep);
    }
例如,上述代码删除偶数点

$string = title("software[2012] v1.2");

结果软件v1 2。但是我想像软件v1.2一样,我已经更改了你的正则表达式

第一个[^\w\s.]将删除任何不是字符、数字、空格或点的内容。 第二个\s+将用分隔符替换所有空格

function title($str, $sep=' ')
{
    $res = strtolower($str);
    $res = preg_replace('/[^\w\s.]/', ' ', $res);
    $res = preg_replace('/\s+/', $sep, $res);
    return trim($res, $sep);
}

第一个preg_replace将删除除字母、数字和下划线以外的所有内容。那是什么:阿纳姆:是的。不管怎样,排除多特?不需要逃避。括号内。@Barmar谢谢你的提示,我删除了“\`还,\w includes\d,你不需要两者。@Jerodev你的解决方案输出的是“软件2012 v1.2”。请参见问题,所需输出为“软件v1.2”