Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP preg_匹配linux正常运行时间命令/响应_Php_Linux - Fatal编程技术网

PHP preg_匹配linux正常运行时间命令/响应

PHP preg_匹配linux正常运行时间命令/响应,php,linux,Php,Linux,因此,我使用php在文本文件中解码Linux命令中的时间 :~>uptime :~>23:20pm up 1:58, 1 user, load average: 0.11, 0.09, 0.11 :~> 我需要1:58返回。我已尝试: preg_match('/[0-9]{1,2}:[0-9]{2}/', $a, $b); 但要得到“23:20”的结果。另外,“1:58”可以变成“12:34:56”这样的数字,我也需要它 我在表达上苦苦挣扎。非常感谢您的帮助。您

因此,我使用php在文本文件中解码Linux命令中的时间

:~>uptime
:~>23:20pm  up   1:58,  1 user,  load average: 0.11, 0.09, 0.11
:~>
我需要1:58返回。我已尝试:

preg_match('/[0-9]{1,2}:[0-9]{2}/', $a, $b); 
但要得到“23:20”的结果。另外,“1:58”可以变成“12:34:56”这样的数字,我也需要它


我在表达上苦苦挣扎。非常感谢您的帮助。

您可以尝试以下正则表达式:

/[0-9]{1,2}:[0-9]{2}[:]{0,1}[0-9]{0,2}/
这将检查是否有另一个
:00
作为时间的一部分,如果没有,它将得到它,然后将忽略它

编辑:小问题上述正则表达式也将匹配如下内容:
12:3342
。因此,可以使用以下正则表达式():


试过了,但是$b[0]显示的是23:20,但是$b[1]是空的,即使使用match allWith
preg\u match\u all
$b[0]
将是一个多维数组,您可以得到如下值:
$b[0][1]
etcOh它是一个多数组,所以$b[0][1]。。。厄运!在应用程序的上下文中,不需要它。
/[0-9]{1,2}:[0-9]{2}(?(?=[:]{1})([:]{1}[0-9]{0,2})())/