38

这可能是一个愚蠢的问题,但我找不到任何关于如何在使用 Dart 的正则表达式匹配后替换文本的参考RegExp

基本上我想做的是这样的:我有这样的文字

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

我想用这个模式匹配字符串\b\w+\b,然后用"$&". 我希望输出如下:

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

所以稍后我可以使用dart:json'sparse将其转换为Map.

也许我错过了什么。有谁知道我怎样才能实现这个替换?

4

1 回答 1

68

您必须使用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);

这个食谱是由Dart Cookbook赞助的。

于 2013-04-09T12:25:26.967 回答