Если я правильно понял вопрос, у вас есть код:
preg_replace("/<input.*>/",$replacement,$string);
, и вы хотите, чтобы мы сказали вам, что вы должны использовать для замены $, чтобы удалить то, что было найдено. *
Вы должны пойти по этому пути наоборот. Используйте группы захвата, чтобы захватить то, что вы хотите сохранить, и снова вставить это в замену. E.g.:
preg_replace("/(<input).*(>)/","$1$2",$string);
Конечно, вам не нужно здесь захватывать группы, так как вы просто вставляете буквальный текст. Ставка выше показывает технику, если вы хотите сделать это в ситуации, когда тег может варьироваться. Это лучшее решение:
preg_replace("/<input [^>]*>/","<input />",$string);
Класс отрицанных символов более специфичен, чем точка. Это регулярное выражение будет работать, если в строке есть два HTML-тега. Ваше оригинальное регулярное выражение не будет.