preg_replace不能处理中文

时间:2022-10-11 22:26:17
下面这段代码,在Linux系统下不能输出结果,请问,这个问题出在哪?
(注:己加入对mbstring的支持)


//这段代码正常输出"中文测试"
$string="中文测试";
$string = preg_replace("/([\w\W]+)/u", '', $string);
echo $string;

6 个解决方案

#1


你想要什么结果啊?我这里很正常。

#2


谢谢楼上。
我的问题是:
这段代码在我的系统里不能正常工作,没有结果输出,请问如何解决这个问题?是不是php平台出问题了?怎么解决呢

#3


用点来匹配所有字符
preg_replace("/(.+)/u", '', $string); 

#4


谢谢楼上。
我现在问题是不想改变语句,而是查找是什么原因造成这句在我系统不能有正确的结果返回。因为这意味着我的系统对中文处理有问题,会导致一些的潜在的问题。

#5


\w不能写在[]中,\W即可匹配中文

$string="中文测试"; 
$string = preg_match("/(\W+)/u", $string,$arr);
echo $arr[1]; 

#6


这句:$string = preg_replace("/([\w\W]+)/u", '', $string); 
在其他朋友的系统下都没问题,是VBB中文版中的一个语句,现在问题是这句在我系统里不能返回结果。感觉是我系统php对中文处理有问题,想找到解决办法。
因为光改这句,虽然能解决这个问题,但没找到问题根本,会有隐藏bug。

#1


你想要什么结果啊?我这里很正常。

#2


谢谢楼上。
我的问题是:
这段代码在我的系统里不能正常工作,没有结果输出,请问如何解决这个问题?是不是php平台出问题了?怎么解决呢

#3


用点来匹配所有字符
preg_replace("/(.+)/u", '', $string); 

#4


谢谢楼上。
我现在问题是不想改变语句,而是查找是什么原因造成这句在我系统不能有正确的结果返回。因为这意味着我的系统对中文处理有问题,会导致一些的潜在的问题。

#5


\w不能写在[]中,\W即可匹配中文

$string="中文测试"; 
$string = preg_match("/(\W+)/u", $string,$arr);
echo $arr[1]; 

#6


这句:$string = preg_replace("/([\w\W]+)/u", '', $string); 
在其他朋友的系统下都没问题,是VBB中文版中的一个语句,现在问题是这句在我系统里不能返回结果。感觉是我系统php对中文处理有问题,想找到解决办法。
因为光改这句,虽然能解决这个问题,但没找到问题根本,会有隐藏bug。

相关文章