正则表达式用制表符替换空格

时间:2013-10-19 01:50:25

标签: php regex

我需要用\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 ....

如何以正确的格式正确地获取此信息?

任何帮助表示赞赏。

3 个答案:

答案 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.