在PHP中从字符串中除去除字母数字字符以外的所有字符
我想要一个regexp或其他字符串,它可以替换字符串中除字母数字字符(在PHP中从字符串中除去除字母数字字符以外的所有字符,php,regex,string,Php,Regex,String,我想要一个regexp或其他字符串,它可以替换字符串中除字母数字字符(a-z和0-9)以外的所有字符。所有的东西,比如,@#$(@*810)都应该去掉。有什么想法吗 编辑:我现在需要这个来去除所有东西,但允许点,所以除了a-z,1-9,.。想法 /[^a-z0-9.]/ 应该这样做试试: $string = preg_replace ('/[^a-z0-9]/i', '', $string); /我代表案例不敏感(当然,如果你需要的话) 匹配一个或多个非a-z 0-9[不区分大小写]或“.”
a-z
和0-9
)以外的所有字符。所有的东西,比如,@#$(@*810
)都应该去掉。有什么想法吗
编辑:我现在需要这个来去除所有东西,但允许点,所以除了a-z,1-9,.
。想法
/[^a-z0-9.]/
应该这样做试试:
$string = preg_replace ('/[^a-z0-9]/i', '', $string);
/我代表案例不敏感(当然,如果你需要的话)
匹配一个或多个非a-z 0-9[不区分大小写]或“.”的字符,并替换为“我喜欢使用[^[:alnum:]”,这样可以减少出错的空间
preg_replace('/[^[:alnum:]]/', '', "(ABC)-[123]"); // returns 'ABC123'
这也适用于用下划线替换任何数字、单词字符或句点以外的内容。对文件名很有用
$clean = preg_replace('/[^\d\w.]+/', '_', $string);
我如何更改该设置以只允许点(即)?你不需要转义字符集中的点。你真的需要
+
符号吗?有人在下面贴了没有+
符号的帖子。@kuchi:很老的问题,但我刚刚遇到了它:如果你用空字符串替换,它没有什么区别。如果你用其他东西替换,它确实有区别,比如dash(“-”
)。使用+
它将“test$!§test”
更改为“test test”
。如果没有“+”
它将更改为“test---test”
,我如何更改它以只允许点(即)。请使用完整的reg exp?我不知道语法
$clean = preg_replace('/[^\d\w.]+/', '_', $string);