当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Dart String.replaceAllMapped用法及代码示例


dart:core 库中String.replaceAllMapped 方法的用法介绍如下。

用法:

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

用计算字符串替换与from 匹配的所有子字符串。

创建一个新字符串,其中匹配 from 的非重叠子字符串(由 from.allMatches(thisString) 迭代的子字符串)被在相应的 Match 对象上调用 replace 的结果替换。

这可用于将匹配项替换为取决于匹配项的新内容,这与替换字符串始终相同的 replaceAll 不同。

使用模式生成的Match 调用replace 函数,并将其结果用作替换。

下面定义的函数使用 replaceAllMapped 将字符串中的每个单词转换为简化的 'pig latin' :

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!'

相关用法


注:本文由纯净天空筛选整理自dart.dev大神的英文原创作品 replaceAllMapped method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。