我需要用\t
替换第一列和第二列以及第二列和第三列之间的空格。
0101 A 01/13/13
0102 F 04/05/13
0209 C 04/19/13
但是我在这方面遇到了麻烦,它将所有内容放在一行并写出\t
代替。
preg_replace('/(?:^|\s)/', '\t', $text);
它打印出来......
\t0101\tA\t01/13/13\t\t ....
如何以正确的格式正确地获取此信息?
任何帮助表示赞赏。
答案 0 :(得分:3)
只需搜索文字空间并替换为\t
...除非您的数据变化多于此值,否则(?:)
都不是必需的。
还有其他空间吗?还有更多专栏吗?
preg_replace('/ /',"\t", $text);
如果我使用:
制作test.php文件<pre>
<?php
$t="0101 A 01/13/13\n0102 F 04/05/13\n0209 C 04/19/13";
printf(preg_replace('/ /',"\t",$t));
?> </pre>
它产生了这个:
0101 A 01/13/13
0102 F 04/05/13
0209 C 04/19/13
答案 1 :(得分:3)
如果您的数据是严格格式的,那么为什么不
preg_replace('/\s+(.)\s+/', "\t$1\t", $text);
答案 2 :(得分:0)
echo(preg_replace('/ /','\t','str str')."\n");//use【''】,result is:【str\tstr】,not work. echo(preg_replace('/ /',"\t",'str str')."\n");//use【""】,result is:【str str】,it work.