PHP只允许某些字符,并替换所有其他字符
我有一个PHP变量,我需要从中删除所有特殊字符,比如PHP只允许某些字符,并替换所有其他字符,php,Php,我有一个PHP变量,我需要从中删除所有特殊字符,比如%/é/等 如何将A-Z/A-Z/0-9和(句号)以外的所有字符替换为(句号)
%/é/代码>等
如何将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。但是,其他一些正则表达式引擎的行为不同,因此您提出了一个很好的观点