我有要处理的文本文件已经从pdf文件转换过来。这些文件包含带有数据的列,其中数据由多个空格分隔。 为了理解数据,我使用
$line=trim($line);
$line=preg_replace("/\s+/", "\t", $line);
$array=explode("\t", $line);
除了包含名称的1列外,这种方法效果很好。名称用单个空格分隔,有些名称包含2个部分(第一个和最后一个),但有些名称包含2个以上的部分(例如John F. Doe)。
有什么办法可以调整我的preg_replace
命令,这样只有多个空格被翻译成一个标签,单个空格会留作单个空格吗?
答案 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);