<?php
$s = "0 10000001 mx 张三
  1 10000002 ux 李四
     2 1000003 ix 王五
";
$s = str_replace(" "," ",$s); // 滤出除可能的全角空格
preg_match_all("/(\d+)\s+(\d+)\s+(\w+)\s([\x80-\xff\w]+)/",$s,$regs);foreach($regs[1] as $k=>$v)
  printf("INSERT INTO AGNTCODE VALUES ('%s','%s','%s','%s');\n"
    ,$v,$regs[4][$k],$regs[2][$k],$regs[3][$k]);?>

解决方案 »

  1.   

    谢谢楼上,是我学艺不精,呵呵!!
    只是我还一点是我自已没有说清楚,就是,
    如果前一那个数字表示为2,那么在名字栏内就是要加一个前缀2*6个空格。
    就是我要的最终格式是
    ‘0’,‘张三’,‘10000001',’mx'
    ‘1’,‘  李四’,‘10000002',’ux'
    ‘2’,‘    王五’,‘10000003',’ix'
    再请帮忙一下,谢!!!!!!!!!
      

  2.   

    唠叨兄的正则就是强 。 搂住是要这个效果吗?<?php
    $s = "0 10000001 mx 张三
      1 10000002 ux 李四
         2 1000003 ix 王五
    ";
    $s = str_replace(" "," ",$s); // 滤出除可能的全角空格
    preg_match_all("/(\d+)\s+(\d+)\s+(\w+)\s([\x80-\xff\w]+)/",$s,$regs);foreach($regs[1] as $k=>$v)
      printf("INSERT INTO AGNTCODE VALUES ('%s','%s','%s','%s');\n"
        ,$v,(str_repeat(' ',$v*6)).$regs[4][$k],$regs[2][$k],$regs[3][$k]);?>