我需要将第一列和第二列以及第二列和第三列之间的空格替换为\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 ....
我怎样才能以正确的格式正确获取它?
任何帮助表示赞赏。
如果您的数据是这样的严格格式,为什么不呢
preg_replace('/\s+(.)\s+/', "\t$1\t", $text);
只需搜索文字空间并替换为\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
echo(preg_replace('/ /','\t','str str')."\n");//使用【''】,结果为:【str\tstr】,无效。 echo(preg_replace('/ /',"\t",'str str')."\n");//使用【""】,结果为:【str str】,有效。