splitMapJoin method
Splits the string, converts its parts, and combines them into a new string.
The pattern
is used to split the string
into parts and separating matches.
Each match of Pattern.allMatches of pattern
on this string is
used as a match, and the substrings between the end of one match
(or the start of the string) and the start of the next match (or the
end of the string) is treated as a non-matched part.
(There is no omission of leading or trailing empty matchs, like
in split, all matches and parts between the are included.)
Each match is converted to a string by calling onMatch
. If onMatch
is omitted, the matched substring is used.
Each non-matched part is converted to a string by a call to onNonMatch
.
If onNonMatch
is omitted, the non-matching substring itself is used.
Then all the converted parts are concatenated into the resulting string.
final result = 'Eats shoots leaves'.splitMapJoin(RegExp(r'shoots'),
onMatch: (m) => '${m[0]}', // (or no onMatch at all)
onNonMatch: (n) => '*');
print(result); // *shoots*
Implementation
String? splitMapJoin(Pattern pattern,
{String Function(Match)? onMatch,
String Function(String)? onNonMatch}) =>
value?.splitMapJoin(pattern);