當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。