中文/日文/韩文字符是双字节或Unicode。
答案 0 :(得分:3)
以下正则表达式应该有效; \p{P}
匹配标点和\p{S}
matches symbols。
preg_replace("/\p{P}|\p{S}/u", "", $s);
我无法测试它,因为我的pcre不支持\p
,\x
等。我收到了错误:
PHP警告:
preg_replace()
:编译失败:第3行test.php中的偏移量1尚未编译\P
,\p
和\X
的支持< / p>
如果您收到此错误,请转到此页describes a fix
答案 1 :(得分:1)
mb_ereg函数实现了多字节感知的正则表达式。但是,您确实需要更准确地指定“特殊字符”的含义。
编辑:我认为您需要的是PCRE支持的Unicode character classes,但我不确定mb_ereg函数是否支持这些函数或者preg函数是否支持多字节字符串。