删除所有但有效的字符

时间:2010-08-17 16:47:18

标签: php regex

有效字符包括字母(abcd ..),数字(0123456789),空格,'和“。

我需要从PHP中的字符串中删除除这些之外的任何其他字符。

谢谢:)

2 个答案:

答案 0 :(得分:26)

你可以这样做:

$str = preg_replace('/[^a-z0-9 "\']/', '', $str);

此处,字符类[^a-z0-9 "']将匹配除列出的字符之外的任何字符(请注意字符类开头的反转^),然后将其替换为空字符串。

答案 1 :(得分:1)

Gumbo's answer对于您指定的规范是正确的。但如果你的“规范”只是“象征性”,你最终需要的可能如下:

$str = preg_replace('{ [^ \w \s \' " ] }x', '', $str );

[^ ]:否定字符类(所有除了这些内部)

\w:字母数字(字母和数字)

\s:空格

\':'