Spec-Zone.ru › Dart 1

dart:core

Метод replaceAllMapped абстрактного класса

String replaceAllMapped(Pattern from, String replace(Match match))

Замена всех подстрок, которые соответствуют from строкой, вычисляемой из совпадения.

Возвращает новую строку, в которой непересекающиеся подстроки, соответствующие from (те, которые итерируются from.allMatches(thisString)), заменяются результатом вызова replace на соответствующем объекте Match.

Это можно использовать для замены совпадений новым содержимым, которое зависит от совпадения, в отличие от replaceAll, где строка замены всегда одинаковая.

Функция replace вызывается с Match, сгенерированным шаблоном, и ее результат используется в качестве замены.

Функция, определенная ниже, преобразует каждое слово в строке в упрощённый «свинский латин» с помощью replaceAllMapped:

pigLatin(String words) => words.replaceAllMapped(
    new RegExp(r'\b(\w*?)([aeiou]\w*)', caseSensitive: false),
    (Match m) => "${m[2]}${m[1]}${m[1].isEmpty ? 'way' : 'ay'}");

pigLatin('I have a secret now!'); // 'Iway avehay away ecretsay ownay!'

Исходный код

String replaceAllMapped(Pattern from, String replace(Match match));

© 2012 the Dart project authors
Licensed under the Creative Commons Attribution-ShareAlike License v4.0.
https://api.dartlang.org/stable/1.24.3/dart-core/String/replaceAllMapped.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API