2013-07-22 189 views
0

我已经遇到了这个功能,将要做的第一部分,我觉得删除非字母数字字符

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

但我不希望删除“ - ”,“+”或“| ”。 我怎样才能为这些例外。

回答

4
preg_replace("/[^A-Za-z0-9 +|-]/", '', $string); 
+1

如果在第一个或最后一个位置使用,则不需要在字符类内部转义'-'。 – anubhava

+0

@anubhava - 其实你是在两个角色之间做的。出于这个原因,我把它放在最后而没有逃脱,但是为了万一他改变了事物的顺序,我逃脱了它。 –

+0

正确的,这就是我的意思是,如果在第一或最后一个位置使用' – anubhava

0

试试这个:

$string = "[email protected]%+"; 
echo preg_replace("/[^A-Za-z0-9\+\-\| ]/", '', $string); 
2

您也可以使用简写形式与\w

preg_replace("/[^\w\+\|\-\s]/", '', $string); 
相关问题