Как заменить всё между строк?
const a = '<string name="app_name">Super Name</string>'; console.log(a.replaceAll(/<string name="app_name">.*</string>/g, 123)); |
const a = '<string name="app_name">Super Name</string>'; console.log(a.replaceAll(/<string name="app_name">.*</string>/g, 123));
Пробовал и (.*) и ^.*$ и (^.*$), не могу нагуглить как это сделать.
Дополнительно:
https://developer.mozilla.org/en-US/docs/Web/JavaS...
- Я так понял g это выбрать всё, но как выбрать всё до следующей группы?
console.log(a.replace(/(<string name="app_name">) | (g) | (</string>)/, `$1$3`));
console.log(a.replace(/(<string name="app_name">) | (g) | (</string>)/, `$1$3`));
- Всё, понял:
console.log(a.replace(/(<string name="app_name">)(.*)(</string>)/i, `$1 123 $3`));
console.log(a.replace(/(<string name="app_name">)(.*)(</string>)/i, `$1 123 $3`));
- Спасибо
- historydev, Для replaceAll() тоже должно работать. Только там для регулярки обязателен глобальный флаг /g
- Сергей delphinpro, Да, я понимаю
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос
Для замены всего содержимого между двумя строками в PHP можно воспользоваться регулярными выражениями и функцией preg_replace(). Ниже приведен пример кода, который показывает, как это можно сделать:
// Исходная строка $string = "Это начальная строка. Заменить это. Это конечная строка."; // Строка, которую нужно заменить $startString = "Заменить это."; // Строка, на которую нужно заменить $endString = "Это новая строка."; // Регулярное выражение для поиска всего содержимого между двумя строками $pattern = "/$startString(.*?)$endString/s"; // Заменяем все содержимое между $startString и $endString на новую строку $newString = preg_replace($pattern, $startString . $endString, $string); // Выводим результат echo $newString;
В данном примере мы используем регулярное выражение "/$startString(.*?)$endString/s" для поиска всего содержимого между строками "$startString" и "$endString". Флаг "s" в конце регулярного выражения указывает на то, что точка в шаблоне также будет совпадать с символами новой строки.
Затем мы используем функцию preg_replace() для замены найденного содержимого на новую строку, которую мы формируем, объединяя строки "$startString" и "$endString".
Таким образом, после выполнения этого кода в переменной $newString будет содержаться исходная строка, в которой все содержимое между строками "$startString" и "$endString" будет заменено на новую строку.