PHP只允许某些字符,并替换所有其他字符

PHP只允许某些字符,并替换所有其他字符,php,Php,我有一个PHP变量,我需要从中删除所有特殊字符,比如%/é/等 如何将A-Z/A-Z/0-9和(句号)以外的所有字符替换为(句号)

我有一个PHP变量,我需要从中删除所有特殊字符,比如
%/é/


如何将
A-Z
/
A-Z
/
0-9
(句号)以外的所有字符替换为
(句号)

<

preg_replace("/[^A-Za-z0-9\.]/", "_", $str);

[]
中需要
0-9
。这似乎不是像é这样的字母,或者我认为
[^\w.]
是一个等价的缩写。(
\w
也包括
\u
,但将
\u
替换为
\u
实际上什么都不是。如果替换为
\u
以外的内容,则
\w
将是不正确的。)我不会假设
\w
将排除像
\e
这样的字母但非ASCII字符。这不取决于您的区域设置吗?@qwrrty PCRE将只匹配ASCII字母,除非显式启用Unicode。但是,其他一些正则表达式引擎的行为不同,因此您提出了一个很好的观点