如何删除除字母数字和下划线和短划线以外的所有字符?

时间:2011-05-19 18:26:08

标签: php pcre

我不是正则表达式的专家:( 我试图从字符串中删除所有字符,除了alpanumeric和下划线和短划线。 这是正确的语法吗?:

preg_replace("/[^a-z0-9_-]+/i", "", $string);

3 个答案:

答案 0 :(得分:19)

是的,但可以略微优化:

preg_replace('/[^\w-]/', '', $string);

\w匹配字母数字字符和下划线。如果您的语言环境允许,这还有允许重音字符的附加优势。

答案 1 :(得分:1)

你看起来它会起作用。您可能想要添加空格,因为它们不是字母数字字符:

preg_replace("/[^a-z0-9_-\s]+/i", "", $string);

答案 2 :(得分:0)