Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/246.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 正则表达式传递空间和一个字符,并删除剩余的特殊字符_Php_Regex_String - Fatal编程技术网

Php 正则表达式传递空间和一个字符,并删除剩余的特殊字符

Php 正则表达式传递空间和一个字符,并删除剩余的特殊字符,php,regex,string,Php,Regex,String,这是我的正则表达式,用于删除特殊字符 但是我不想从文本中删除空格和@ function clean($string) { $string = str_replace(' ', ' ', $string); // Replaces all spaces with hyphens. return preg_replace('/[^A-Za-z0-9\-]/', '', $string); // Removes special chars. } 上面的代码不允许空格,也不知道如何允许@持

这是我的正则表达式,用于删除特殊字符

但是我不想从文本中删除空格和
@

function clean($string) {
   $string = str_replace(' ', ' ', $string); // Replaces all spaces with hyphens.
   return preg_replace('/[^A-Za-z0-9\-]/', '', $string); // Removes special chars.
}

上面的代码不允许空格,也不知道如何允许@持续存在。

请更改您的模式以不替换它们:
'/[^A-Za-z0-9@\-]/'

不过,要确保清洁剂仍然足够干净

看起来您应该阅读一篇关于perl兼容正则表达式的小文章