splitMapJoin 抽象方法
将字符串分割,转换其部分,并将它们组合成一个新的字符串。
使用 pattern
将字符串分割成部分和分离匹配项。该字符串上 pattern
的 Pattern.allMatches 的每个匹配项都用作一个匹配项,并且将一个匹配项的结尾(或字符串的开始)和下一个匹配项的开始(或字符串的结尾)之间的子字符串视为一个非匹配部分。(与 split 不同,不会省略前导或尾随空匹配项,所有匹配项和部分都被包含在内。)
通过调用 onMatch
将每个匹配项转换为字符串。如果省略了 onMatch
,则使用匹配的子字符串。
通过调用 onNonMatch
将每个非匹配部分转换为字符串。如果省略了 onNonMatch
,则使用非匹配的子字符串本身。
然后将所有转换后的部分连接成结果字符串。
final result = 'Eats shoots leaves'.splitMapJoin(RegExp(r'shoots'),
onMatch: (m) => '${m[0]}', // (or no onMatch at all)
onNonMatch: (n) => '*');
print(result); // *shoots*
实现
String splitMapJoin(Pattern pattern,
{String Function(Match)? onMatch, String Function(String)? onNonMatch});