splitMapJoin 抽象方法

String splitMapJoin(
  1. Pattern pattern, {
  2. String onMatch(
    1. Match
    )?,
  3. String onNonMatch(
    1. String
    )?,
})

将字符串分割,转换其部分,并将它们组合成一个新的字符串。

使用 pattern 将字符串分割成部分和分离匹配项。该字符串上 patternPattern.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});