Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/254.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
使用preg_match PHP从字符串中查找失败的行_Php_Regex - Fatal编程技术网

使用preg_match PHP从字符串中查找失败的行

使用preg_match PHP从字符串中查找失败的行,php,regex,Php,Regex,我需要在PHP中使用preg_match编写正则表达式,以便执行以下操作: 我确实有这样的字符串: 测试1:正常 测试2:正常 测试3:失败 测试4:进度 测试5:好的 因此,我需要找到不确定的行。 测试3:失败 测试4:进展 所以我想我必须检查:和\r\n(\n)if!=好的,我如何使用preg_match来实现这一点 非常感谢您的帮助 为什么要使用正则表达式?字符串函数应该可以满足这一要求;正则表达式更像是最后的手段 $lines = explode("\n", str_replace("\

我需要在PHP中使用preg_match编写正则表达式,以便执行以下操作:

我确实有这样的字符串:

测试1:正常
测试2:正常
测试3:失败
测试4:进度
测试5:好的

因此,我需要找到不确定的行。
测试3:失败
测试4:进展

所以我想我必须检查\r\n(\n)if!=好的,我如何使用preg_match来实现这一点


非常感谢您的帮助

为什么要使用正则表达式?字符串函数应该可以满足这一要求;正则表达式更像是最后的手段

$lines = explode("\n", str_replace("\r\n", "\n", $lines));
$failed = array();

foreach ($lines as $line) {
    if (strpos($line, 'OK') === false) {
        $failed[] = $line;
    }
}

preg\u match\u all('/test\d+:(?!OK)/,$allrows,$rowsNotOk)

怎么样?您可以直接筛选失败的行。preg_match_all('/test\d+:(!OK)/',$allrows,$rowsNotOk),我可以做一些类似preg_match_all('/:(!OK)/',$allrows,$rowsNotOk)的事情吗?我不想在行的开头绑定到测试。可能是1t:OK是的,它完全有效。但我不知道您要在数组中存储什么。我要存储在后面没有“OK”的行:preg_match_all('/^.*(?=:(!OK$)/',$allrows,$rowsNotOk),它将存储不以“OK”结尾的行名称。这对我不适用。正在获取数组([0]=>Array([0]=>test1))