В настоящее время я работаю над проектом, в котором мне нужно сопоставить указанные теги c html и заменить их другими.
Я использую Javascript, чтобы сделать это, и код выглядит так:
// html to update
html = '<div class="page-embed"><article><iframe src="https://alink" width="100%"></iframe></article></div>';
// regex that will match the specific "<div class="page-embed">...<iframe src="https://alink"></iframe>...</div>
const regexIframeInsideDiv = /<\s*div\s*class="page-embed"[^>]*>.*?<\s*iframe[^>]*\s*src="(.*?)"\s*><\s*\/\s*iframe\s*>.*?<\s*\/\s*div\s*>/g;
html = html.replace(regexIframeInsideDiv, (_match, src) => {
console.log(src);
return `<oembed>${src}</oembed>`;
});
Я использую инструмент (), чтобы получить то, что находится внутри атрибута источника, следующим образом:
src="(.*?)"
Вот проблема:
Если я запускаю код, консоль будет записывать:
https://alink" width="100%
, где она должна записывать:
https://alink
Возможно, я что-то упустил, например escape-строку или ошибку что-то еще ... но я не знаю, что.
Вот ожидаемое поведение: https://regexr.com/4tbj6
Спасибо!