2013-04-09 9 views
11

Das mag eine dumme Frage sein, aber ich kann keinen Hinweis darauf finden, wie man einen Text ersetzt, nachdem er durch eine Regexp dart 's RegExp gefunden wurde.dart wie man eine regexp anpasst und dann ersetzt

Also im Grunde, was ich versuche, wie dies zu tun ist: ich einen Text wie diesen

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

haben Ich möchte mit diesem Muster der Zeichenfolge übereinstimmen \b\w+\b dann ersetzen Sie diese "$&" verwenden, dann erwarte ich, der Ausgang ist wie folgt:

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

So später i dart:json ‚s parse verwenden kann, das drehen, um ein Map.

Vielleicht vermisse ich etwas, kümmern, um mir einen Zeiger zu geben?

Antwort

11

Sie müssen String.replaceAllMapped verwenden.

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); 

Dieses Rezept wird gesponsert von Dart Cookbook.

+0

Vielen Dank! wirkt wie ein Zauber, und ich danke Ihnen noch einmal, dass Sie auf dieses Kochbuch hingewiesen haben, ich weiß nicht, dass es eins gibt. –

Verwandte Themen