replaceMatches method
String
replaceMatches(
- String source,
- PassageReplacement replacement, {
- BibleLanguageEnum? language,
Replaces matches in one pass without scanning replacement text again.
Implementation
String replaceMatches(
String source,
PassageReplacement replacement, {
BibleLanguageEnum? language,
}) {
final matches = extract(source, language: language);
if (matches.isEmpty) return source;
final output = StringBuffer();
var copiedThrough = 0;
for (final match in matches) {
output.write(source.substring(copiedThrough, match.start));
output.write(replacement(match));
copiedThrough = match.end;
}
output.write(source.substring(copiedThrough));
return output.toString();
}