Вы можете спросить, почему ваше текущее решение не работает?
Если вы видите, что оно соответствует символу пробела после совпадения status:
, то соответствует до конца строки на .*
, затем возвращается, чтобы найтисовпадать, где пространство существует.Если пробел после ok
не существует сразу или где-то позже в строке, совпадений не найдено.Решение:
status:\s+\K\w+
Вам не нужны группы захвата, и вы не должны количественно оценивать прогноз.
Смотрите демонстрацию здесь
PHPкод:
preg_match('~status:\s+\K\w+~', $text, $matches);