PHP preg_replace不是单词字符(\ W)的字符除了:“ - ”,“。”等

时间:2013-06-08 14:15:47

标签: php regex preg-replace

我在这个问题上搜索了很长一段时间, 我想在PHP中过滤一个字符串,只允许使用单词字符和某些其他字符,如“ - ”,“。”等。

preg_replace(/\W+/,'',$str)

对于所有非单词字符,它工作得很好,添加“除了”会导致麻烦。

此外,如果您有一个彻底解释主题的来源,我很乐意深究它。这个主题要么非常复杂,要么我已经读过不好的解释。

1 个答案:

答案 0 :(得分:3)

使用包含单词字符和您想要允许的其他字符的否定字符类。

$new_str = preg_replace('/[^-,.\w]+/', '', $str);

有关正则表达式的大量信息,请访问www.regular-expressions.info。