从PHP中的字符串中删除除字母数字字符之外的所有内容

时间:2009-05-08 17:30:18

标签: php regex string

我想要一个正则表达式或其他字符串,它可以从字符串中替换除字母数字字符(a-z0-9)之外的所有内容。应删除,@#$(@*810等所有内容。有什么想法吗?

编辑:我现在需要这个去掉所有东西但是允许点,所以除了a-z, 1-9, .之外的所有内容。想法?

5 个答案:

答案 0 :(得分:64)

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

匹配一个或多个字符而不是a-z 0-9 [不区分大小写]或“。”并替换为“”

答案 1 :(得分:19)

我喜欢使用[^ [:alnum:]]来减少错误的空间。

preg_replace('/[^[:alnum:]]/', '', "(ABC)-[123]"); // returns 'ABC123'

答案 2 :(得分:2)

/[^a-z0-9.]/

应该做的伎俩

答案 3 :(得分:2)

尝试:

$string = preg_replace ('/[^a-z0-9]/i', '', $string);

/ i代表不区分大小写(当然,如果你需要它)。

答案 4 :(得分:0)

这也可以替换任何不是数字,单词字符或带下划线的句点。对文件名很有用。

$clean = preg_replace('/[^\d\w.]+/', '_', $string);