如何在PHP中只替换某些特殊字符?

如何在PHP中只替换某些特殊字符?,php,Php,我只需要替换某些特殊字符,其他所有字符都必须保留,因此我不能使用[a-zA-Z0-9]和类似的代码来保存东西,其他所有字符都应该被替换 我试过这样的方法: $textrim = preg_replace("/(_%:\"`´\[\]\.\(\)\'!\?\.,#‘\<\>-—~\*)/", "", $title); $textrim=preg\u replace(“/(\%:\”`\[\]\.\(\)\'!\?\,“\-~\*)/”,“,”,$title); 但是它不起作用,而且

我只需要替换某些特殊字符,其他所有字符都必须保留,因此我不能使用
[a-zA-Z0-9]
和类似的代码来保存东西,其他所有字符都应该被替换

我试过这样的方法:

$textrim = preg_replace("/(_%:\"`´\[\]\.\(\)\'!\?\.,#‘\<\>-—~\*)/", "", $title);
$textrim=preg\u replace(“/(\%:\”`\[\]\.\(\)\'!\?\,“\-~\*)/”,“,”,$title);

但是它不起作用,而且我在网上也找不到任何可以根据需要修改的东西。

好的,我问了之后才想出来

$textrim = preg_replace('/(_|%|:|"|`|´|\[|\]|\.|\(|\)|\'|!|\?|\.|,|#|‘|\<|\>|-|—|~|\*|\$)/', '', $title);
$textrim=preg|u replace('/(|%|):|“|”\[|\].|\.(|\)| | | | | | | | | | | | |-| | | | | | | | | | |-| | | | | | | | 124;

您还可以创建包含要替换的字符的字符类:

像这样的

$out = preg_replace("/[_%:\"`´\[\]()'!?.,#‘<>—~*$-]/", "", $title);
$out=preg\u replace(“/[\%:\”`\[\]()'!?,“-~*$-]/”,“,$title”);

也应该可以使用。

您不需要正则表达式

参见第二个示例

// Provides: Hll Wrld f PHP
$vowels = array("a", "e", "i", "o", "u", "A", "E", "I", "O", "U");
$onlyconsonants = str_replace($vowels, "", "Hello World of PHP");

事实上,我先是有了这样的东西,我认为它是有效的,但后来我意识到,我所有的字母都消失了,只有数字留下了。我不知道为什么会发生这种情况,但我想,“[]”是为了保留这些字符。谢谢!我把它当作蚂蚁草,因为它似乎是最有效的。@Hunnenkoenig在英语中,我们说“答案”代表“蚂蚁草”;)哎呀。。。当你每天积极地说3种语言时,就会出现这种情况:-)实际上,在德语中,所有名词都以大写字母开头。“凯恩问题”应该是