我不是正则表达式的专家:( 我试图从字符串中删除所有字符,除了alpanumeric和下划线和短划线。 这是正确的语法吗?:
preg_replace("/[^a-z0-9_-]+/i", "", $string);
答案 0 :(得分:19)
是的,但可以略微优化:
preg_replace('/[^\w-]/', '', $string);
\w
匹配字母数字字符和下划线。如果您的语言环境允许,这还有允许重音字符的附加优势。
答案 1 :(得分:1)
你看起来它会起作用。您可能想要添加空格,因为它们不是字母数字字符:
preg_replace("/[^a-z0-9_-\s]+/i", "", $string);
答案 2 :(得分:0)