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});