我正在解析命令行应用程序的输出,如下所示:
0644 1276317623781623132132 Crappy little message filename.txt
0644 1276317623781623132132 Crappy little message My File.txt
0644 1276317623781623132132 Crappy little message Crazy FILE.txt
有时字段由制表符分隔,有时按空格分隔。如何编写正则表达式来分隔字段?我在[\ s] +中使用preg_split,但这会弄乱消息和文件名。我在这里很丢失。
答案 0 :(得分:1)
解决方案是构建一个更具体的正则表达式来匹配:
例如,假设最后一个是标签,您可以点击:
您可以使用
进行拆分preg_match('/^([0-9]{4}).*([0-9]{22})[\s]*([^\t]*)[\s]*(.*)$/', $string, $aMatches);
如果上面的例子波动,您可以改变它以满足您的需求。或者最后一个不是标签而是一堆空格,然后查找所需的空格数等等。