我怎样才能仅通过PHP替换符号,而不能替换字符0,9或仅英语或中文或日语字符的符号...反正通过PHP可以做到这一点吗?我使用preg_replace允许使用英文字符和数字,但是如果发现日语/中文/俄语字符会被自动删除...希望有人可以帮助我找到有关此问题的解决方法。
我尝试使用此命令,但仍然无法正常工作...
$Data = preg_replace('/[^\p{L}\p{N}]/u', '-', $Data);
答案 0 :(得分:2)
也许这段代码会为您提供帮助。
<?php
$string = "年m月d日ASDFdfdfd4545$@#$@$@";
$newString = preg_replace('/[^\\p{L} 0-9]/mu', "_", $string);
echo $newString;
输出:
年m月d日ASDFdfdfd4545 _______
\p{L}
匹配来自任何语言的任何字母
/u
是Unicode修饰符,如果要处理,则需要使用它
Unicode字符
实时演示:http://sandbox.onlinephpfunctions.com/code/a81db5a33e910799f995046104d38898c1203756