Дротик, как совместить, а затем заменить регулярное выражение

Это может быть глупый вопрос, но я не могу найти ссылку на то, как заменить текст после сопоставления регулярным выражением с помощью dart RegExp.

Итак, в основном я пытаюсь сделать так: У меня есть такой текст

'{name : aName, hobby : [fishing, playing_guitar]}'

Я хочу сопоставить строку с помощью этого шаблона \b\w+\b, а затем заменить с помощью этого "$&", тогда я ожидаю, что результат будет таким:

'{"name" : "aName", "hobby" : ["fishing", "playing_guitar"]}'

Поэтому позже я могу использовать dart:json parse, чтобы превратить это в Map.

Может, я что-то пропустил, позабочусь дать мне какой-то указатель?

Ответ 1

Вы должны использовать String.replaceAllMapped.

final string = '{name : aName, hobby : [fishing, playing_guitar]}';
final newString = string.replaceAllMapped(RegExp(r'\b\w+\b'), (match) {
  return '"${match.group(0)}"';
});
print(newString);

Спонсором этого рецепта является Поваренная книга по дартсу.