我有一个很多字符串,类似  “王先生1578”、“陈先生”那我想把最右边的数字提取出来,并加上1,不知道应该怎么做?请诸位大侠帮忙。 $patterns = "/\d+$/";
preg_match_all($patterns,$str,$arr); if (empty($arr))
{ $i=2; }
else
{
$s=$arr[0][0];   //好像这行会出错。
$i=$s+1; }这行出错显示“Notice: Undefined offset: 0 in E:”请诸位大侠给一个好的算法

解决方案 »

  1.   

    你这样做没错啊!Notice不用管。
      

  2.   

    $str = "王先生1578王先生15王先生17王先生18王先生578";
    echo preg_replace_callback("/(\d+)/", "r", $str);function r($matches) { return $matches[1]+1; }
      

  3.   


    $str = "王先生1578王先生15王先生17王先生18王先生578";
    echo preg_replace_callback("/(\d+)/", "r", $str);function r($matches) { return $matches[1]+1; }
    你把你的那修改为$patterns = "/(\d+)$/";试试
      

  4.   


    不要修改成 $patterns = "/(\d+)$/"   这样不行去掉$