str="年表:1937年,日本进攻中国;1945年,投降;1946年,内战;1949年,共产党打赢了。……(省略)…当年战争,换来今日和平。"类似上面的要 删掉所有数字后面的紧挨着的"年"字:结果str="年表:1937,日本进攻中国;1945,投降;1946,内战;1949,共产党打赢了。……(省略)…当年战争,换来今日和平。"

解决方案 »

  1.   


    $str="年表:1937年,日本进攻中国;1945年,投降;1946年,内战;1949年,共产党打赢了。……(省略)…当年战争,换来今日和平。";echo preg_replace('/(\d+)年/', '$1', $str);
    /**
    输出结果:
    年表:1937,日本进攻中国;1945,投降;1946,内战;1949,共产党打赢了。……(省略)…当年战争,换来今日和平。
    */
      

  2.   

    <?php
    header("content-type:text/html;charset=utf-8");
    $str="年表:1937年,日本进攻中国;1945年,投降;1946年,内战;1949年,共产党打赢了。……(省略)…当年战争,换来今日和平。";echo preg_replace('/(\d+)年,/', '$1:', $str);
      

  3.   

    麻烦解释一下上面的$1是什么用法,是什么语法。如果我要读取 每紧挨着的"年"前的那一串数,是否要用preg_match,怎么弄用
      

  4.   

    似乎明白了~~
    但是现在我要读取这此数字串,该用什么方法?才能放进这里?
    $array=array(1937,1945,1946,1949 ……)
      

  5.   

    $str="年表:1937年,日本进攻中国;1945年,投降;1946年,内战;1949年,共产党打赢了。……(省略)…当年战争,换来今日和平。";
    $patten = "/(\d+)年/";
    preg_match_all($patten,$str,$arr);
    print_r($arr[1]);