Не нужны здесь регулярные выражения:
document.querySelectorAll('img[src*="/test/"]')
UPD. Оказывается, автор вопроса с первого раза не сумел рассказать, чего ему надо. Вынесено из комментариев:
это не в dom, а в строке
О как. Ну а я в свою очередь продолжу настаивать на ненужности регулярных выражений. Создаём элемент, загоняем в него строку, ищем нужные элементы, получаем их разметку:
const div = document.createElement('div');
div.innerHTML = str;
const imgsStr = [...div.querySelectorAll('img[src*="/test/"]')].map(n => n.outerHTML).join('');
или
const imgsStr = Array.from(
new DOMParser().parseFromString(str, 'text/html').querySelectorAll('img[src*="/test/"]'),
n => n.outerHTML
).join('');
UPD. Нет, со второго раза тоже не получилось. Всплыли ещё подробности:
мне нужно удалить из этой строки все картинки, которые...
Удалить, так удалить:
const div = document.createElement('div');
div.innerHTML = str;
div.querySelectorAll('img[src*="/test/"]').forEach(n => n.remove());
str = div.innerHTML;
или
const d = new DOMParser().parseFromString(str, 'text/html');
d.querySelectorAll('img[src*="/test/"]').forEach(n => n.remove());
str = d.body.innerHTML;