使用preg_match PHP从字符串中查找失败的行
我需要在PHP中使用preg_match编写正则表达式,以便执行以下操作: 我确实有这样的字符串: 测试1:正常使用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("\
测试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))