Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.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_Preg Replace - Fatal编程技术网

PHP从字符串中删除特殊字符并保留一些

PHP从字符串中删除特殊字符并保留一些,php,regex,preg-replace,Php,Regex,Preg Replace,我需要从字符串中删除所有特殊字符,除了-() 到目前为止我有这个代码 $q = preg_replace('/[^A-Za-z0-9\-]/', '', $q); //removes ALL characters 如何排除-()?您的正则表达式已经排除了- 否则,将括号放在否定字符类中: $q = preg_replace('/[^A-Za-z0-9() -]/', '', $q); 另外,你也不需要逃出破折号。你应该试试类似的方法 $q = preg_replace('/[^A-Za-z0

我需要从字符串中删除所有特殊字符,除了
-()

到目前为止我有这个代码

$q = preg_replace('/[^A-Za-z0-9\-]/', '', $q); //removes ALL characters

如何排除
-()

您的正则表达式已经排除了
-

否则,将括号放在否定字符类中:

$q = preg_replace('/[^A-Za-z0-9() -]/', '', $q);

另外,你也不需要逃出破折号。

你应该试试类似的方法

$q = preg_replace('/[^A-Za-z0-9\-\(\) ]/', '', $q); //removes ALL characters

上面将允许
空格
以及
-

任何您想要例外的内容 示例=>。例外情况是其他特殊字符将被删除
预替换('/[^A-Za-z0-9-]/(.),'$string)

您应该使用此功能:

public function getAlphaNumericString($string) {
  return  preg_replace('/[^A-Za-z0-9\- ]/', '', $string); // Removes special chars.
}
函数url($string)
{
返回strtolower(trim(preg&([a-z]{1,2})(?:acute | cedil | circ | grave | lig | orn | ring |斜线| th | tilde | uml | | | | i | | | | | i | | | | l | uml i | | | | | | | | | | | | |;
}
$url_name='manoj&chauhan';
echo=$url(url\u名称);
//结果manoj chauhan

好的,但它似乎也删除了空格。我们如何排除空间?@MindaugasMilius保持空间也是一项要求?哦,我不知道。只要在方括号内,最好在破折号前加一个空格:
/[^a-Za-z0-9()-]/
。你在回答什么问题?我用这个代码替换url中的所有特殊字符…我没有问任何问题他们不想用
-
替换特殊字符,请重新阅读问题。