发布于 2022-11-08 21:38:33 浏览 469 次
分割符中文状态下无法分割:
<?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) "我是被分割字符" }
今天做php项目的时候,发现preg_split函数使用正则表达式时,分割不了含中文的字符串。但是将中文分割字符换成英文情况下就能正常分割。后来查找资料发现,可以在表达式后加上“u”修饰符即可解决问题。