这可能是一个愚蠢的问题,但我找不到任何关于如何使用正则表达式匹配后替换文本的参考 dart
的 RegExp
。
基本上我要做的就是这样:
我有这样的文字
'{name : aName, hobby : [fishing, playing_guitar]}'
我想使用这种模式匹配字符串 \b\w+\b
然后用这个替换 "$&"
,那么我希望输出是这样的:
'{"name" : "aName", "hobby" : ["fishing", "playing_guitar"]}'
所以后来我可以使用 dart:json
的 parse
把它变成一个 Map
。
也许我想念一些东西,小心翼翼地给我一些指针?
你必须使用 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。
你必须使用 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。