Как заменить всё между строк?

Ссылка скопирована
19 февраля 2026 1 ответ
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, Да, я понимаю
Нужно решить такую задачу?

Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

Заказать помощь
Лучший ответ
1
Сергей Миронов Ответ

Для замены всего содержимого между двумя строками в PHP можно воспользоваться регулярными выражениями и функцией preg_replace(). Ниже приведен пример кода, который показывает, как это можно сделать:

// Исходная строка
$string = "Это начальная строка. Заменить это. Это конечная строка.";
 
// Строка, которую нужно заменить
$startString = "Заменить это.";
 
// Строка, на которую нужно заменить
$endString = "Это новая строка.";
 
// Регулярное выражение для поиска всего содержимого между двумя строками
$pattern = "/$startString(.*?)$endString/s";
 
// Заменяем все содержимое между $startString и $endString на новую строку
$newString = preg_replace($pattern, $startString . $endString, $string);
 
// Выводим результат
echo $newString;

// Исходная строка $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" будет заменено на новую строку.

Другие ответы (0)

Пока нет других ответов. Будьте первым, кто поможет автору.

Ответить на вопрос

комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вам также может быть интересно