РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
179 of 723 menu

Метод replaceFirstMapped

Метод replaceFirstMapped ищет первое вхождение подстроки, соответствующей регулярному выражению, и заменяет его на результат, который возвращает переданная функция. Сама исходная строка при этом не изменяется. Первым параметром метод принимает регулярное выражение или строку для поиска, вторым - функцию-маппер, которая получает объект совпадения Match и должна вернуть строку для замены.

Синтаксис

str.replaceFirstMapped(pattern, (Match match) => replacement)

Пример

Давайте заменим первое число в строке на его удвоенное значение. Для этого в функции-маппере преобразуем найденную подстроку в число, умножим на два и вернём обратно в виде строки:

void main() { String str = 'abc 12345 def 12345'; String res = str.replaceFirstMapped( RegExp(r'\d+'), (Match match) => (int.parse(match.group(0)!) * 2).toString() ); print(res); }

Результат выполнения кода:

"abc 24690 def 12345"

Пример

Давайте заменим первое вхождение подстроки 'abcde' на её длину, обёрнутую в квадратные скобки. В функции-маппере используем свойство match.group(0) для получения найденного текста:

void main() { String str = 'abcde 12345 abcde'; String res = str.replaceFirstMapped( 'abcde', (Match match) => '[${match.group(0)!.length}]' ); print(res); }

Результат выполнения кода:

"[5] 12345 abcde"

Смотрите также

  • метод replaceFirst,
    который заменяет первое вхождение подстроки
  • метод replaceAllMapped,
    который заменяет все вхождения с помощью функции
  • метод replaceAll,
    который заменяет все вхождения подстроки
  • метод replaceRange,
    который заменяет диапазон символов
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить