遇到了php分割字符串问题:想把分割符一同返回到结果数组中怎么实现呢?寻求高手帮助。

具体如下:
<?php
$str = 'A10:aaa1aaa。A42:aaa2aaa。A3-8:aaa3aaa。.A9:aaa4aaa。';
$regex = "/(A\d+)(-\d+)*(:|:)/";
$keywords = preg_split($regex, $str);
var_dump($keywords);
?>

期待返回:
array
0 => string 'A10:aaa1aaa。'
1 => string 'A42:aaa2aaa。'
2 => string 'A3-8:aaa3aaa。.'
3 => string 'A9:aaa4aaa。'

却返回:
array
0 => string '' (length=0)
1 => string 'aaa1aaa。' (length=9)
2 => string 'aaa2aaa。' (length=9)
3 => string 'aaa3aaa。.' (length=10)
4 => string 'aaa4aaa。' (length=9)

怎么解决呢?
'A10:aaa1aaa。A42:aaa2aaa。A3-8:aaa3aaa。.A9:aaa4aaa。',这里边的aaa1aaa。其实代表大段的中文文字,在数据库中是放在一个字段的,显示时又想分段显示,以 A... 为分段标记,同时这分段标记又也要显示出来。

<?php
$str = 'A10:aaa1aaa。 A42:aaa2aaa。 A3-8:aaa3aaa。. A9:aaa4aaa。';//各句子间加了一个空格
$arr = explode(" ",$str);//这是以空格为分割符,也可以用其他的做分隔符,比如冒号、逗号
print_r ($arr);
?>
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-09-08
你为啥不只用句号当分割符?
第2个回答  2011-09-09
$arr = explode("。",$str);

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网