Как заменить только последнее совпадение строки с preg_replace?

Я должен заменить последнее соответствие строки (например, слово foo) в документе HTML. Проблема в том, что структура HTML-документа всегда случайна.

Я пытаюсь выполнить это с помощью preg_replace, но до сих пор я знаю, как заменить только первое совпадение, но не последнее.

Благодарю.

Используйте негативный внешний вид (?!...)

 $str = 'text abcd text text efgh'; echo preg_replace('~text(?!.*text)~', 'bar', $str),"\n"; 

вывод:

 text abcd text bar efgh 

Пример

 <?php $str = 'Some random text'; $str_Pattern = '/[^ ]*$/'; preg_match($str_Pattern, $str, $results); print $results[0]; ?>