如何操作字符串

hbcb 2004-04-02 05:04:44
$str="AB1234CD";
想对$str进行分解,
从第一个字符开始检查,当遇到数字时,把前面的几个字符保存在字符串$head 里面,如这里$head="AB"。
然后继续往后检查,当遇到不是数字时,把前面的数字当成整数保存在$number里面,如这里$number=1234,
再把后面的所有字符保存在$tail里面,如这里$tail="CD".

请问PHP如何实现呢?好象不能象 C 那样把字符串当成数组来操作吧?
...全文
36 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuzuning 2004-04-03
  • 打赏
  • 举报
回复
<?php
$str="AB1234CD";
$reg = "/[^\d]+|[\d]+/";
preg_match_all($reg,$str,$arr);
print_r($arr[0]);
?>
hbcb 2004-04-03
  • 打赏
  • 举报
回复
非常感谢,用preg_match_all 可以了,但是head 和tail 的范围不仅仅限于字母,是除了数字以外任何字符,要怎么表示呢?
cloudchen 2004-04-02
  • 打赏
  • 举报
回复
<?php
$str="AB1234CD";
$reg = "/[a-zA-Z]+|[0-9]+/";
preg_match_all($reg,$str,$arr);
list($head,$number,$tail) = $arr[0];
echo $head.$number.$tail;
?>
gucs 2004-04-02
  • 打赏
  • 举报
回复
不错
skystar008 2004-04-02
  • 打赏
  • 举报
回复
用strstr()
hahawen 2004-04-02
  • 打赏
  • 举报
回复
$str="AB1234CD";
preg_match_all("|^([a-zA-Z]+)([0-9]+)([a-zA-Z]+)$|",$str,$arr);
print_r($arr);
echo $arr[1][0].'----'.$arr[2][0].'----'$arr[3][0].'----';
zhaobohao 2004-04-02
  • 打赏
  • 举报
回复
to:bonniewater(陪你去看海)
好简单。。
bonniewater 2004-04-02
  • 打赏
  • 举报
回复
<?php
$str="AB1234CD";
$p = array("/(\d+)/","/[A-Z]{1,}/");
foreach($p as $v)
{
preg_match_all($v,$str,$arr);
print_r($arr);
}
?>

zhaobohao 2004-04-02
  • 打赏
  • 举报
回复
for($i=0;$i<strlen($str);$i++)
{
$sub=substr($str,$i,1);
if(ctype_digit($sub))
$ISNUM[$i]=$sub;
else
$ISNUM[$i]=" ";
if(ctype_digit($sub))
$ISSTR[$i]="";
else
$ISSTR[$i]=$sub;
}

这个是对的,上面有错误,嗬嗬,太着急了写的时候。!!
zhaobohao 2004-04-02
  • 打赏
  • 举报
回复
$ISNUM里面都是数字和空格,你自己根据空格把连续在一起的数字分开就可以了。
$ISSTR里面是字符和空格,你自己根据空格把连续在一起的字符分开就可以了。
52juanjuan 2004-04-02
  • 打赏
  • 举报
回复
用正则表达式来进行判断
zhaobohao 2004-04-02
  • 打赏
  • 举报
回复
for($i=0;$i<strlen($str);$i++)
{
$sub=substr($str,$i,1);
if(ctype_digit($sub))
$ISNUM[$i]=$sub;
else
$ISNUM[$i]=" ";
if(ctype_digit($sub))
$ISSTR[$i]=$sub;
else
$ISSTR[$i]="";
}

21,887

社区成员

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

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