replaceAllMapped 抽象方法
使用计算字符串替换所有与 from
匹配的子字符串。
创建一个新的字符串,其中与 from
匹配的非重叠子字符串(由 from.allMatches(thisString)
迭代)被调用 replace
对应 Match 对象的结果替换。
这可以用于替换与匹配相关的新内容,而不同于 replaceAll,其中替换字符串始终相同。
使用模式生成的 Match 调用 replace
函数,并使用其结果作为替换。
以下定义的函数使用 replaceAllMapped 将字符串中的每个单词转换为简化的 '猪拉丁语'。
String pigLatin(String words) => words.replaceAllMapped(
RegExp(r'\b(\w*?)([aeiou]\w*)', caseSensitive: false),
(Match m) => "${m[2]}${m[1]}${m[1]!.isEmpty ? 'way' : 'ay'}");
final result = pigLatin('I have a secret now!');
print(result); // 'Iway avehay away ecretsay ownay!'
实现
String replaceAllMapped(Pattern from, String Function(Match match) replace);