Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在PHP中从字符串中除去除字母数字字符以外的所有字符_Php_Regex_String - Fatal编程技术网

在PHP中从字符串中除去除字母数字字符以外的所有字符

在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[不区分大小写]或“.”

我想要一个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[不区分大小写]或“.”的字符,并替换为“

我喜欢使用[^[: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);