问题 dart如何匹配然后替换正则表达式


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

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

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

我想使用这种模式匹配字符串 \b\w+\b 然后用这个替换 "$&",那么我希望输出是这样的:

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

所以后来我可以使用 dart:jsonparse 把它变成一个 Map

也许我想念一些东西,小心翼翼地给我一些指针?


6854
2018-04-09 11:08


起源



答案:


你必须使用 String.replaceAllMapped

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

这个食谱由赞助 Dart Cookbook


12
2018-04-09 12:25



谢谢!就像一个魅力,再次感谢你指出那本食谱,不知道有一本。 - Otskimanot Sqilal


答案:


你必须使用 String.replaceAllMapped

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

这个食谱由赞助 Dart Cookbook


12
2018-04-09 12:25



谢谢!就像一个魅力,再次感谢你指出那本食谱,不知道有一本。 - Otskimanot Sqilal