convertTemplateToRegex function
Implementation
(String, List<String>, List<String>) convertTemplateToRegex(
{Map<String, String>? parameters,
String template = '',
MatchType? matchTypeOverride,
bool extraEscape = false}) {
template = escapeSpecialCharacters(template, extraEscape: extraEscape);
parameters = parameters ?? {};
final List<String> unSubstitutedVars = [];
final List<String> allVars = templateParamRegex
.allMatches(template)
.map((match) => match.group(1)!)
.toList();
allVars.asMap().forEach((index, param) {
if (parameters?.containsKey(param) ?? false) {
template = template.replaceAll('{{$param}}', parameters![param]!);
} else {
unSubstitutedVars.add(param);
final replacement =
matchTypeOverride == MatchType.GREEDY || param.endsWith('GRD')
? '(.*)'
: '(.*?)';
template = template.replaceAll('{{$param}}', replacement);
}
});
return (template, allVars, unSubstitutedVars);
}