-1

我正在解析一个命令行应用程序的输出,如下所示:

0644    1276317623781623132132      Crappy little message        filename.txt
0644    1276317623781623132132      Crappy little message        My File.txt
0644    1276317623781623132132      Crappy little message        Crazy FILE.txt

有时字段由制表符隔开,有时由空格隔开。如何编写正则表达式来分隔字段?我将 preg_split 与 [\s]+ 一起使用,但这会弄乱消息和文件名。我很迷失在这里。

4

1 回答 1

1

解决方案是构建一个更具体的正则表达式来匹配:

例如,假设最后一个是选项卡,您可以使用:

您可以使用拆分

preg_match('/^([0-9]{4}).*([0-9]{22})[\s]*([^\t]*)[\s]*(.*)$/', $string, $aMatches);

如果上面的示例发生波动,您可以改变它以满足您的需求。或者最后一个不是制表符而是一堆空格,然后查找所需的空格数等。

于 2012-05-31T07:18:57.660 回答