2014-01-22 10 views
6

任何人都可以告诉我如何我可以替换字符串中的所有特殊字符,除了下划线和句号。而且我一直在试图理解如何使这个替换模式阅读PHP手册,以及它如此混乱像我这样的初学者是否有任何其他文档或教程,使初学者变得容易,以便我不必发布另一个类似的问题,并且每次我想要使用此功能时都会遇到麻烦。如何替换除下划线和句点在PHP中的所有特殊字符?

preg_replace('/[^a-zA-Z0-9]/', '', $string); 

这就是我把它替换所有的特殊字符,但我想除了_.

+1

[阅读正则表达式在这里!](http://www.regular-expressions.info/) – jurgemaister

回答

13

_.到否定的字符集([^...]):

$string = preg_replace('/[^a-zA-Z0-9_.]/', '', $string); 

你不应该忽略$string = ..因为preg_replace回报替换字符串。它不会更改字符串。

+0

谢谢你的工作 – maniteja

+2

@maniteja,FYI,上面的模式可以用'/ [^ \ w替换。 ] /'因为'\ w'匹配任何单词字符(包括字母,数字,'_')。 – falsetru

+0

你会如何允许这里的'/'字符? –

1

你可以使用一些PHP的过滤器插件像净化器(设置白名单输入)...

但尽管如此,我们想建议你学习正则表达式!

相关问题