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