我想问一下就是有关于正则表达式格式化文本的问题

我拿到的的数据是,
0 10000001 mx 张三
1 10000002 ux 李四
2 1000003 ix 王五
那么,我们能不能用PHP的正则做出格式化文本,
就是SQL:
INSERT INTO AGNTCODE VALUES (‘0’,‘张三’,‘10000001',’mx');
INSERT INTO AGNTCODE VALUES (‘1’,‘ 李四’,‘10000002',’ux');
INSERT INTO AGNTCODE VALUES (‘2’,‘ 王五’,‘10000003',’ix');
急,请求救
---------------------------------------------------------------

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

---------------------------------------------------------------

唠叨兄的正则就是强 。 搂住是要这个效果吗?

 1   
 2$s = "0 10000001 mx 张三   
 31 10000002 ux 李四   
 42 1000003 ix 王五   
 5";   
 6$s = str_replace(" "," ",$s); // 滤出除可能的全角空格   
 7preg_match_all("/(\d+)\s+(\d+)\s+(\w+)\s([\x80-\xff\w]+)/",$s,$regs);   
 8  
 9foreach($regs[1] as $k=>$v)   
10printf("INSERT INTO AGNTCODE VALUES ('%s','%s','%s','%s');\n"   
11,$v,(str_repeat(' ',$v*6)).$regs[4][$k],$regs[2][$k],$regs[3][$k]);   
12  
Published At
Categories with Web编程
comments powered by Disqus