PHP新手问一个字符串分割的问题

chenchenyangll 2011-05-05 10:06:13
现在我有一串格式化的字符串
我要求每次遇到5个','后,往后读取3个字符处 切割字符串 比如

a,b,21,3efw,123123,dcf (在此处分割) 3,df,23,2ter,13232,asd (在此处分割) ……

小弟新学PHP 高手指点啊
...全文
223 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
马蒂 2011-05-06
  • 打赏
  • 举报
回复
楼上正解
xuzuning 2011-05-06
  • 打赏
  • 举报
回复
$s = 'a,b,21,3efw,123123,dcf3,df,23,2ter,13232,asdxxx';
preg_match_all('/(?:[^,]*,){5}.{1,3}/s', $s, $r);
print_r($r);

Array
(
[0] => Array
(
[0] => a,b,21,3efw,123123,dcf
[1] => 3,df,23,2ter,13232,asd
)

)

ImN1 2011-05-06
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 hnxxwyq 的回复:]

如果还要加上剩余的匹配则是

PHP code

<?php

$str = 'a,b,21,3efw,123123,dcf3,df,23,2ter,13232,asdaa,b,sfs21,3efadw,123123,dcf3,dadf,23,2ter,13232,asadd,ff';

$reg = '/(?:[^,]*,){5}[^,]{0,3}|(?:[^,]*,?){0,4}$/i……
[/Quote]

还是你想得细一些,空有逗号没字符都考虑进去……
lazyboy_wu 2011-05-05
  • 打赏
  • 举报
回复
如果还要加上剩余的匹配则是


<?php

$str = 'a,b,21,3efw,123123,dcf3,df,23,2ter,13232,asdaa,b,sfs21,3efadw,123123,dcf3,dadf,23,2ter,13232,asadd,ff';

$reg = '/(?:[^,]*,){5}[^,]{0,3}|(?:[^,]*,?){0,4}$/im';

$matches = array();

preg_match_all($reg, $str, $matches);

print_r($matches);

lazyboy_wu 2011-05-05
  • 打赏
  • 举报
回复
用正则吧

看是否得到你的需求


<?php

$str = 'a,b,21,3efw,123123,dcf3,df,23,2ter,13232,as,dcf3,df,23,2ter,13232,asd';

$reg = '/(?:[^,]*,){5}[^,]{0,3}/im';

$matches = array();

preg_match_all($reg, $str, $matches);

print_r($matches);


ImN1 2011-05-05
  • 打赏
  • 举报
回复
$str = 'a,b,21,3efw,123123,dcf3,df,23,2ter,13232,asdaa,b,sfs21,3efadw,123123,dcf3,dadf,23,2ter,13232,asadd,ff';
preg_match_all("/(([^,]+,){5}...).*/iU",$str,$m);
var_dump($m);


最后的一段“dd,ff”暂时没分出来……要再想想
chenchenyangll 2011-05-05
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 snmr_com 的回复:]

这个相当难

如果第五和第六个逗号之间只有三个或少于三个字符怎么办?
[/Quote]

这个不用考虑 能够保证数据都是合法的 = =

就单纯一个一个分我也会 不过我希望有一个一次搞定的 不行就只能用死方法了 = =
bigwood88 2011-05-05
  • 打赏
  • 举报
回复
用explode可以实现,先用分割符生成一个数组,再使用数组每一个元素进行第二次分割,分割符用逗号
ImN1 2011-05-05
  • 打赏
  • 举报
回复
这个相当难

如果第五和第六个逗号之间只有三个或少于三个字符怎么办?

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧