展开

preg_split分割不了中文字符串

发布于 2022-11-08 21:38:33     浏览 378

preg_split分割不了中文字符串

适用环境:

型号:台式机
系统:Windows Server 2008 R2
版本:php 5.6.21

问题解析:

【】

1、 今天做php项目的时候,发现preg_split函数使用正则表达式时,分割不了含中文的字符串。但是将中文分割字符换成英文情况下就能正常分割。后来查找资料发现,可以在表达式后加上“u”修饰符即可解决问题。分割符中文状态下无法分割:
<?php
$txt   = '【抉信网络】我是被分割字符【抉信网络】我是被分割字符';
$preg  = '/【[^】]+】/'; 
$value = preg_split($preg,$txt);
var_dump($value);
?>
输出结果:
array(1) { [0]=> string(78) "【抉信网络】我是被分割字符【抉信网络】我是被分割字符" }

分割符英文状态下正常分割:
<?php
$txt   = '【mm】我是被分割字符【mm】我是被分割字符';
$preg  = '/【[^】]+】/'; 
$value = preg_split($preg,$txt);
var_dump($value);
?>
输出结果:
array(3) { [0]=> string(0) "" [1]=> string(21) "我是被分割字符" [2]=> string(21) "我是被分割字符" }

表达式添加“u”修饰符后正常分割。
<?php
$txt   = '【抉信网络】我是被分割字符【抉信网络】我是被分割字符';
$preg  = '/【[^】]+】/u'; 
$value = preg_split($preg,$txt);
var_dump($value);
?>
输出结果:
array(3) { [0]=> string(0) "" [1]=> string(21) "我是被分割字符" [2]=> string(21) "我是被分割字符" }
 

相关推荐

猜你可能喜欢

点击加载更多