脚本宝典收集整理的这篇文章主要介绍了php – 在unicode模式下的preg_split:delim_capture不工作?,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
>全宽完全停止.(0x3002)
>全宽问号?(0xFF1F)
>全宽感叹号!(0xFF01)
现在,让我们说我的$str是这样的:
$str =“你好.你好吗?我是程序员,不太懂这个我问题,希望大家能够帮忙!一起加油吧!”;
我使用preg_split这些参数:
$str2 = PReg_splIT("/([\x{3002}\x{FF01}\x{FF1F}])/u",$str,PREG_SPLIT_DELIM_CAPTURE|PREG_SPLIT_NO_EMPTY);
$str2现在是一个如下所示的数组:
array(3) { [0]=> string(6) "你好" [1]=> string(9) "你好吗" [2]=> string(91) " 我是程序员,希望大家能够帮忙!一起加油吧!" }
但是,预期的输出是:
[0] "你好." [1] "你好吗?" [2] "我是程序员,希望大家能够帮忙!" [3] "一起加油吧!"
正如您所看到的,有两个问题:这不会正确处理感叹号,其次,我的全宽全停和全宽问号消失.我希望delim_capture能够保留它们.我一直在看这段代码这么长时间我不可能弄清楚问题是什么了.我非常感谢建议.
$str = "你好.你好吗? 我是程序员,希望大家能够帮忙!一起加油吧!"; $arr = preg_split("/\s*([^\x{3002}\x{FF01}\x{FF1F}]+[\x{3002}\x{FF01}\x{FF1F}]\s*)/u",PREG_SPLIT_DELIM_CAPTURE|PREG_SPLIT_NO_EMPTY ); var_dump($arr);
OUTPUT:
array(4) { [0]=> string(9) "你好." [1]=> string(13) "你好吗? " [2]=> string(72) "我是程序员,希望大家能够帮忙!" [3]=> string(18) "一起加油吧!" }
以上是脚本宝典为你收集整理的php – 在unicode模式下的preg_split:delim_capture不工作?全部内容,希望文章能够帮你解决php – 在unicode模式下的preg_split:delim_capture不工作?所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。