(<img[^>]+)(?<!/)>
будет соответствовать тегу img
, который не закрыт должным образом. Это требует, чтобы используемая вами разновидность регулярного выражения поддерживала lookbehind (чего нет в Ruby и JavaScript, а в большинстве других). Обратной ссылки нет. 1 будет содержать совпадение, поэтому, если вы ищете это регулярное выражение и замените его на \1/>
, вам будет хорошо.
Если вам нужно учесть возможность >
внутренних атрибутов, вы можете использовать
(<img("[^"]*"|[^>])+)(?<!/)>
Это будет соответствовать, например,
<img src="image.gif" alt="hey, look--->">
<img src="image/image.gif">
и оставить
<img src="image/image.gif" />
одна
.