现有字符“anna (1814)  哎菁 (6474)  李杨 (2759)  天刀 (0411)”等出现在a.txt文档中,我该如何获取通过PHP和正则来循环获取括号内的数字,并且根据根据这些数字来生成一个新的b.txt文档?小弟刚学PHP,还请高手多多指教

解决方案 »

  1.   

    新的txt要插入什么字符,这个需要说清楚哦。
      

  2.   

    $txt = 'anna (1814)  哎菁 (6474)  李杨 (2759)  天刀 (0411)';
    preg_match_all('#\d+#i',$txt,$match);
    //preg_match_all('#\(\d+\)#i',$txt,$match); 带括号情况
    foreach ($match[0] as $row){
    $newdata.=$row.' ';
    //echo $row.'<br/>';
    }
    echo $newdata;
    //file_put_contents('b.txt',$newdata);
    正则循环就是这样。不知道你要生成的txt是什么格式?
      

  3.   


    我用了你的代码,完全可以实现,但我目前想生成一个CSV格式,我想请教下,为什么我生成的是这样的?我想要实现的是一个标题,下面是一列显示显示,不要多行相关代码如下:<?php
    $path="old.txt";
    $txt = file_get_contents($path);;
    //$txt = 'anna (1814)  哎菁 (6474)  李杨 (2759)  天刀 (0411)';
    preg_match_all('#\d+#i',$txt,$match);
    //preg_match_all('#\(\d+\)#i',$txt,$match); 带括号情况
    foreach ($match[0] as $row){
        $newdata.=$row.",";
        //$newdata.=$newdata.'\r\n';
        //echo $row.'<br/>';
    }
    $fp = fopen("new.csv","a"); //打开csv文件,如果不存在则创建  
    $list = array($newdata);
    $list1 = implode(",",$list);
    $list1 = $list1."\r\n"; //加入换行符  
    fwrite($fp,iconv('UTF-8','GB2312',$list1)); //写入数据  
    fclose($fp); //关闭文件句柄  
    echo "生成成功";  
    //echo $newdata;
    //file_put_contents('new.txt',$newdata);
    ?>
      

  4.   

    //$txt = file_get_contents('old.txt');
    $txt = 'anna (1814)  哎菁 (6474)  李杨 (2759)  天刀 (0411)';
    preg_match_all('#\d+#i', $txt, $match);
    $newdata = join(PHP_EOL, $match[0]);
    //file_put_contents('new.txt', $newdata);
    //file_put_contents('new.txt', $newdata, FILE_APPEND);