Я должен заменить последнее соответствие строки (например, слово 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]; ?>