PHP:识别由单个空格分隔的单词与由多个空格分隔的单词

时间:2014-06-09 03:23:10

标签: php regex

我有要处理的文本文件已经从pdf文件转换过来。这些文件包含带有数据的列,其中数据由多个空格分隔。 为了理解数据,我使用

$line=trim($line);
$line=preg_replace("/\s+/", "\t", $line);
$array=explode("\t", $line);

除了包含名称的1列外,这种方法效果很好。名称用单个空格分隔,有些名称包含2个部分(第一个和最后一个),但有些名称包含2个以上的部分(例如John F. Doe)。

有什么办法可以调整我的preg_replace命令,这样只有多个空格被翻译成一个标签,单个空格会留作单个空格吗?

2 个答案:

答案 0 :(得分:2)

您可以使用preg_split,使用正则表达式\s{2,},这意味着两个或更多空格。

$line = trim($line);
$array = preg_split('/\s{2,}/', $line);

答案 1 :(得分:1)

/\s\s+/代表至少2个空格

preg_replace("/\s\s+/", "\t", $line);